?: 1?? ?? - PowerPoint PPT Presentation

1 / 79
About This Presentation
Title:

?: 1?? ??

Description:

Title: PowerPoint Author: apple Last modified by: Created Date: 12/7/2000 8:00:30 AM Document presentation format: – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 80
Provided by: app111
Category:
Tags:

less

Transcript and Presenter's Notes

Title: ?: 1?? ??


1
6? ?? ????
2
??
  • ?? ??
  • ???? ????
  • ??? ?? ??
  • ?? ?? ??
  • ??? ?? ?? ??
  • ?? ?? ??
  • ???? ????
  • ??? ?? ????
  • ?? ??
  • ??? ?? ??

3
?? ??(1)
  • ???? ?? ??
  • ? 1?? ??
  • ?, ??? 2?? ??
  • ??? 3?? ??
  • ???? ??
  • ??? ??
  • ?? ??, ?? ???, ?? ???
  • ??? ??
  • ?? ???, CAD, ?? ?? ??

4
?? ??(2)
  • ?? ??? ?? ????
  • ? struct point int x, y char c
  • ? struct line struct point p1, p2
  • ??? struct point polygonn
  • ??? ? ??

A B C D E F G H I J K L M N O P
x 2 12 3 10 14 1 13 6 8 7 15 16 4 11 9 5
y 6 16 12 11 4 10 8 7 9 5 3 14 5 1 13 2
5
?? ??(3)
  • ??? ?? ????

6
?? ??(4)
  • ?? ??
  • ?? AB
  • ? ? ?? A? B? ??
  • ???? AB
  • ? A? B? ??? ????? ??? ??
  • ??? AB
  • ? A?? ???? ? B? ??? ??? ??
  • ?? Ax
  • ? A?? ???? ?? x?? ??? ???
  • ??? ABC
  • ? A?? ???? ? B? ?? ? C? ???? ???

7
??? ?? ??(1)
  • ??? ?? ?? ????
  • ??l1? ??? p0, p1, ?? l2? ? ? ?? p2? ?, p0, p1,
    p2? ?? ?? ?? ?? ?? ??? ??, l2? ?? ??? p2?? ?? p0,
    p1, p2? ??? ?? ??? ?? ??? ?? ??
  • ?? l2? ??? p0, p1, ?? l1? ? ? ?? p2? ?, p0, p1,
    p2? ?? ?? ?? ?? ?? ??? ??, l1? ?? ??? p2?? ?? p0,
    p1, p2? ??? ?? ??? ?? ??? ?? ??
  • ?? ? ?? ??? ???? ?? ? ??? ???

8
??? ?? ??(2)
p1
p1
p2
p2
p0
p0
9
?? ?? ?? ?? ????
ccw(p0, p1, p2)    dx1 ? p1.x - p0.x dy1 ?
p1.y - p0.y    dx2 ? p2.x - p0.x dy2 ? p2.y -
p0.y   if (dy1/dx1 gt dy2/dx2) then return 1
  if (dy1/dx1 lt dy2/dx2) then return -1  
if ((dx1 0) and (dy1 0)) then return 0  
if ((dx1dx2 lt 0) or (dy1dy2 lt 0) then return
-1   if ((dx12dy12) lt (dx22dy22)) then
return 1   return 0 end ccw()
10
?? ???? ?? ????
int intersect(struct line l1, struct line l2)
  return ((ccw(l1.p1, l1.p2, l2.p1)
(ccw(l1.p1, l1.p2, l2.p2)) lt 0)
         ((ccw(l2.p1, l2.p2, l1.p1)
(ccw(l2.p1, l2.p2, l1.p2)) lt 0)
11
?? ?? ??
  • ?? ?? ??? ??? ??
  • ??? ? ?? ????? ??
  • ??????? ?? ?? ??? ??? ??
  • (tan-1 dy/dx)
  • ????? ??
  • ??? ???? ?? ??
  • tan-1 dy/dx ??
  • dx? 0? ?, ? ???? ??? ??? ???
  • dy/dx ?? dy/(dxdy) ??
  • ??? ??? ???? ???? ??? tan-1dy/dx ? ?? ??? ???

12
? ? ??? ?? ????
theta(p1, p2)    dx ? p2.x - p1.x ax  ? dx
   dy ? p2.y - p1.y ay  ? dy   if ((ax
ay) 0) then t ? 0   else t ? dy/((ax ay)
  if (dx lt 0) then t ? 2 - t   else if (dy
lt 0) then t ? 4 t   return t90.0 end
theta()
13
?? ?? ??? ?
  • N K E L G B D O I M C H J F A P N

14
??? ?? ?? ??
  • ?? ?? ??? ?? ?? ?? ??
  • ??? ??? ??? ?? ??? ??? ??? ?? ?? ??? ?? ?
  • ?? ??? ???? ??? ???? ???? ??
  • ???? ???? ??? ?? ?
  • ???? ???? ??? ?? ?
  • ???? ??? ???? ?? ?? ?? ??? ??

15
??? ??
  • ?? ??? ???? ???? ??? ?

16
??? ??
  • ?? ??? ???? ???? ?? ?? ?? ??

17
?? ??? ??? ??? ??? ??(1)
  • ?? ?? ?? ??? ?? ?

18
?? ??? ??? ??? ??? ??(2)
  • ?? ?? ?? ??? ?? ?

19
??? ?? ?? ?? ????
inside(t, p, N)    count ? 0 j ? 0   
p0 ? pN pN1 ? p1    lt.p1 ? t lt.p2
? t lt.p2.x ? 8   for (i ? 1 i N i ? i
1) do       lp.p1 ? pi lp.p2 ? pi    
if (lp? lt? ???? ??)) then        
lp.p2 ? pj j ? i        if (lp? lt?
???) then count ? count 1           
if (count ??) then return TRUE   else
return FALSE end inside()
20
?? ?? ??
  • ???(convexity)
  • ? ??? ???? ???
  • ?? ???(convex polygon)
  • ??? ??? ?? ? ?? ????? ???? ??? ??? ???? ?? ???
  • ?? ??(convex hull)
  • ?? ?? ?? ???? ? ? ?? ?? ???? ?? ?? ???
  • ?? ??? ??? ?? ??
  • ?? ?? 3?
  • ?? ?? ?? ?

21
?? ?? ?? ?
(b)
(a)
(c)
(d)
22
???? ????
  • ???? ????
  • y ??? ?? ?? ?? ???? ???? ? ?? ??
  • ???? x ?? ??? ??? ???? ???? ?? ?? ???? ???? ??? ?
    ?? ?? ??
  • ???? ???? ??? ?? ??? ? ?? ?? ??? ?? ???? ?
  • ? ??? ????? ???? ? ?? ?? ?? ?? ???? ??? ??
  • Jarvis march ????? ??
  • ? ??? ?? ??? ?? ???
  • ?? ?? ?? ??? ??? ?? ??
  • ??? ?? ?? ?? ??? ?

23
???? ???? ???
  • ??
  • ??? ??
  • ?? ?? ?? ?? ?? ?? ? ?? ???? O(N 2)
  • ?? ??? ??? ??
  • ?? ??? ??
  • ??
  • 3 ?? ???? ????? ? ??
  • k-?? ???? ? ??? ?? ??? ?? ?? ???? ???? ?

24
???? ????? ?? ??
25
???? ????? ?? ?? (1)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
26
???? ????? ?? ?? (2)
N
27
???? ????? ?? ?? (3)
K
N
28
???? ????? ?? ?? (4)
L
K
N
29
???? ????? ?? ?? (5)
B
L
K
N
30
???? ????? ?? ?? (6)
B
M
L
K
N
31
???? ????? ?? ?? (7)
B
M
L
F
K
N
32
???? ????? ?? ?? (8)
B
M
L
F
A
K
N
33
???? ????? ?? ?? (9)
B
M
L
F
A
K
P
N
34
???? ?? ??
35
???? ????
  • ???? ????
  • int PackageWrapping(point p, int N)
  •   int i, min, M float th, v
  •   for (min 0, i 1 i lt N i)
  •     if (pi.y lt pmin.y) min i
  •   pN pmin th 0.0
  •   for (M 0 M lt N M)
  •     swap(p, M, min)
  •     min N v th th 360.0
  •     for (i M1 i lt N i)
  •       if (theta(pM, pi) gt v)
  •         if (theta(pM, pi) lt th)
  •           min i
  •           th theta(pM, pmin)
  •         
  •     if (min N) return M
  •   

PackageWrapping(p, N)    ?? p?? ?? ?? y ??
?? min? ????? ?    pN ? pmin th ? 0.0  
for (M ? 0 M lt N M) do      ?? p??
M? min? ?? ??      min ? N v ? th th ?
360.0     for (i ? M1 i N i ? i 1)
do       if (theta(pM, pi) gt v) then
        if (theta(pM, pi) lt th) then
           min ? i            th ?
theta(pM, pmin)              if (min
N) then return M end PackageWrapping()
36
??? ?? ????
  • ?? ??
  • ?? ?? ???? ??
  • y ???? ?? ?? ??? ??? ???? ????? ???? ????? ?? ???
    ???? ??? ??
  • ?? ?M? ?? ?? ??? ?????, ?M? ???? ?? ??? ??? ?????
    ????? ??
  • ?? ??? ????? ?? ??
  • p1, p2, , pM? ?? ?? ???? ?? ??? ? pi?
    ????? ? ?, ccw(pM, pM-1, pi) 0 ?? pM?
    ??
  • pM-1, pM, pi? ????? pM? ????, ????? pi?
    ??

37
??? ?? ???? ?? ??(1)
K
N
38
??? ?? ???? ?? ??(2)
E
K
N
39
??? ?? ???? ?? ??(3)
L
K
N
40
??? ?? ???? ?? ??(4)
L
G
K
N
41
??? ?? ???? ?? ??(5)
B
L
K
N
42
??? ?? ???? ?? ??(6)
B
L
D
K
N
43
??? ?? ???? ?? ??(7)
B
L
O
K
N
44
??? ?? ???? ?? ??(8)
B
L
O
I
K
N
45
??? ?? ???? ?? ??(9)
B
M
L
K
N
46
??? ?? ???? ?? ??(10)
B
M
L
C
K
N
47
??? ?? ???? ?? ??(11)
B
M
L
C
H
K
N
48
??? ?? ???? ?? ??(12)
B
M
L
C
J
K
N
49
??? ?? ???? ?? ??(13)
B
M
L
F
K
N
50
??? ?? ???? ?? ??(14)
B
M
L
F
A
K
N
51
??? ?? ???? ?? ??(15)
B
M
L
F
A
K
P
N
52
??? ?? ????
GrahamScan(p, N)   ?? p?? ?? ?? y ?? ?? min?
????? ??,   y ?? ?? ??? x ?? ?? ? ?? min? ?????
?   ?? p?? 1? min? ?? ??   ?? p? ?????
??   p0 ? pN   for (M ? 3, i ? 4 i N
i) do     while (pM-1, pM, pi? ???)
do M ? M-1      M ? M 1      ?? p??
i? M? ?? ??      return M  end GrahamScan()
53
?? ??
  • ?? ??
  • ?? ?? ?? ?? ?? ? ?? ??
  • ?) x ??? y ??? ?? ?? ?? ? ?? ?? ?? ?? ??
  • ??? ? ??? ???? ??? ??? ?? ??? ??
  • ??? ??? ??? ??? ?? ?? ???? ????? ??
  • ?? ??
  • ?? ?? ??? ????? ?? ??? ??

54
???? ?? x,y ??? ?? ?
  • x ??? y ??? ?? ?

55
?? ??? ?
56
??? ?? ??
  • ??? ?? ??
  • 2?? ???? ?? N?? ?? ??? ??? ??? ?? ??? ? ?? ?? ??
  • ?? ??
  • ??? ?? ??
  • ??? ??? ?? ??? ??? ??? ?? ?? ??? ?? ?? ?
  • ???? ?????
  • ?? ??? ?? ?? ??? ??? ?? ??? ??? ??

57
??? ?? ??? ????
  • ??? ??
  • ?? ? ??? ??? ?? ???? ?? ??? ?? ?? ?
  • ?? ???? O(N 2)
  • ??? ??? ??
  • ?? ?? ?????? ???? ??-?? ??? ??
  • ?? ???? O(N logN)

58
MergeSort? ??? ??
  • ??? ??? ??? ?? ?? ????
  • x ???? ??? ?? ??? ?? ??? ??
  • ?? ??? ?? ??? ? ??
  • ?? ?? ??? ??? ???
  • ??? ?? ???, ?? ??? ??? ??? ??
  • ?? ??? ?? ??? ? ?? ???(dividing line)? ????? ??
    ????? ??? ? ?? ??? ???
  • MergeSort ??? ???

59
??? ?? ?? ????
ClosestPair(p, N)   ? ?? ????? ???? MergeSort
????? ???? x ??? ?? ??? ???   ? ?? ????? y
???? ?? ??? ??? ????? ??? ??? ??   ? ?,
min?? ?? ??? ????, cp1? cp2?? ?? ??? ? ??
??? end ClosestPair()
60
??? ?? ?? ???? ?? ??(1)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
61
??? ?? ?? ???? ?? ??(2)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
62
??? ?? ?? ???? ?? ??(3)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
63
??? ?? ?? ???? ?? ??(4)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
64
??? ?? ?? ???? ?? ??(5)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
65
??? ?? ?? ???? ?? ??(6)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
66
??? ?? ?? ???? ?? ??(7)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
67
??? ?? ?? ???? ?? ??(8)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
68
??? ?? ?? ???? ?? ??(9)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
69
??? ?? ?? ???? ?? ??(10)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
70
??? ?? ?? ???? ?? ??(11)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
71
??? ?? ?? ???? ?? ??(12)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
72
??? ?? ?? ???? ?? ??(13)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
73
??? ?? ?? ???? ?? ??(14)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
74
??? ?? ?? ???? ?? ??(15)
B
M
L
O
C
D
F
I
G
H
A
J
E
K
P
N
75
??? ?? ??? ?? ?? ?? ??
15
7
14
3
6
10
13
1
2
4
5
8
9
11
12
F
A
C
M
P
H
J
I
O
D
N
B
G
E
K
L
76
?? ??? ????
  •  ???? ???(Voronoi polygon)
  • ??? ? ???? ?? ?? ???? ??? ??? ?? ??? ?? ?? ??
  • ???? ?????(Voronoi diagram)
  • ???? ????? ???
  • ??? ???? ???
  • ?? ??? ??? ???? ??? ?? ?? ?????? ??
  • ??? ????(Delaunay triangulation)
  • ???? ?????? ??

77
???? ????? ????
  • ????
  • Voronoi diagram? ??? ????? ??? ? ????? ?? ??? ???
    ??
  • ?? x ??? ?? ?? ??
  • ? ??? ???? ??? ???? ???? ???, ? ?? ??? ??? ???
    ??? ???? Voronoi diagram? ?? ? ?
  • ??? ??? y ??? ?? ????? ? ?? ??? ?? Voronoi
    diagram? ??

78
???? ?????
79
??? ????
Write a Comment
User Comments (0)
About PowerShow.com