degree-driven algorithm design for computing the voronoi diagram
DESCRIPTION
Degree-driven algorithm design for computing the Voronoi diagram . Jack Snoeyink. David L. Millman. University of North Carolina - Chapel Hill. FWCG08 Oct 31, 2008. Voronoi diagrams. Voronoi diagrams. Implicit Voronoi Diagram [LPT97] . Implicit Voronoi Diagram [LPT97]. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/1.jpg)
Degree-driven algorithm design for computing the Voronoi
diagram
Jack Snoeyink
FWCG08Oct 31, 2008
David L. Millman
University of North Carolina - Chapel Hill
![Page 2: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/2.jpg)
2
Voronoi diagrams
![Page 3: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/3.jpg)
3
Voronoi diagrams
Implicit Voronoi Diagram [LPT97]
![Page 4: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/4.jpg)
4
Implicit Voronoi Diagram [LPT97] Topological component
• Planar embedding Geometric Component
• Each vertex (vx,vy) of Voronoi diagram of S
€
vx* =
vx 0 ≤ vx ≤ 2b −1 and vx is an integer
vx⎣ ⎦ + 12
0 ≤ vx ≤ 2b −1 and vx is not an integer
0 vx < 02b − 1
2 vx > 2b −1
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
Same for vy*
![Page 5: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/5.jpg)
5
Basic ProblemGiven:
sites S ={s1,s2,…,sn} w/ b-bit integer coords
Construct:
implied Voronoi V*(S) with minimum precision.
Note: precision < 5b bits precludes computing the Voronoi Diagram…
![Page 6: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/6.jpg)
6
Previous WorkHandling the precision requirements of
geometric computation: Rely on machine precision Exact Geometric Computation [Y97] Arithmetic Filters [FV93][DP99] Adaptive Predicates [P92][S97] Topological Consistency [SI92] Degree-driven algorithmic design [LPT97]
![Page 7: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/7.jpg)
7
Cell GraphCell Vertex
Cell Edge
Grid Cell Vertex
Non-Grid Cell Vertex
![Page 8: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/8.jpg)
8
Randomized Incramental [SI92]
![Page 9: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/9.jpg)
9
bisectorInCellGiven:
Two sites s1, s2, and a grid cell G
Decide: Whether b12 passes through G
€
g = xg ,yg( )
g− s12 = gx − x1( )
2 + gy − y1( )2
![Page 10: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/10.jpg)
10
Arithmetic Degree Arithmetic degree
- monomial, sum of the arithmetic degree of its variables
- polynomial, largest arithmetic degree of its monomials
€
gx − x1( )2 + gy − y1( )
2
? gx − x2( )2 + gy − y2( )
2
€
gx − x1
16 7 8 ⎛
⎝ ⎜ ⎜
⎞
⎠ ⎟ ⎟
2
26 7 4 8 4
+ gy − y1
16 7 8 ⎛
⎝ ⎜ ⎜
⎞
⎠ ⎟ ⎟
2
26 7 4 8 4
€
gx − x1
16 7 8 ⎛
⎝ ⎜ ⎜
⎞
⎠ ⎟ ⎟
2
+ gy − y1
16 7 8 ⎛
⎝ ⎜ ⎜
⎞
⎠ ⎟ ⎟
2
€
gx1}
− x1
1} ⎛
⎝ ⎜
⎞
⎠ ⎟2
+ gy1}
− y1
1} ⎛
⎝ ⎜
⎞
⎠ ⎟2
€
gx − x1( )2
26 7 4 8 4 + gy − y1( )
2
26 7 4 8 4
21 2 4 4 4 3 4 4 4
![Page 11: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/11.jpg)
11
bisectorInCellGiven:
Two sites s1, s2, and a grid cell G
Decide: Whether b12 passes through G Degree 2 and constant time
€
g = xg ,yg( )
q− s12 = gx − x1( )
2 + gy − y1( )2
![Page 12: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/12.jpg)
12
stabbingOrderingGiven:
Two bisectors b12 & b34 that stab a grid cell G
Determine: The order in which the bisectors intersect the cell walls
Degree 3 and constant time
€
q = xq ,yq( )
q− s1 = q− s2x1
2 − x22 + y1
2 − y22 = 2 x1 − x2( )xq − 2 y1 − y2( )yq
![Page 13: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/13.jpg)
13
bisectorWalkGiven:
Two sites s1, s2 and a direction to walk
bisectorWalk:a traversal of a subset of the cells that b12 passes though. Degree 2 and log(g)
![Page 14: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/14.jpg)
14
bisectorIntersection
Degree 3 and log(g)
Given: Four sites si, i={1,2,3,4}
Find: The grid cell that contains the intersection of bisectors b12 & b34
![Page 15: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/15.jpg)
15
Results Method for computing the implicit Voronoi
diagram using predicates of max degree 3. Running time is in O(n (log n + log g)),
where g is the max bisector length. First construction of the implicit Voronoi
w/o computing the full Voronoi diagram.
![Page 16: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/16.jpg)
16
Future Work Can we do this in degree 2? Generalizing to other diagrams Diagrams with non-linear bisectors Identify the grid cell containing a bisector
intersection in constant time
![Page 17: Degree-driven algorithm design for computing the Voronoi diagram](https://reader036.vdocuments.mx/reader036/viewer/2022062502/568163ee550346895dd565a2/html5/thumbnails/17.jpg)
17
Happy Halloween
Thank you!