Algorithms for 3D Printing and Other Manufacturing...
Transcript of Algorithms for 3D Printing and Other Manufacturing...
![Page 1: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/1.jpg)
Algorithms for 3D Printing and Other ManufacturingMethodologies
Efi Fogel
Tel Aviv University
2D ArrangementsApr. 24th, 2017
![Page 2: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/2.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 2
![Page 3: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/3.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 3
![Page 4: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/4.jpg)
Two Dimensional ArrangementsDefinition (Arrangement)Given a collection C of curves on a surface, the arrangement A (C ) is thepartition of the surface into vertices, edges and faces induced by thecurves of C .
An arrangementof circles in theplane.
An arrangement of lines inthe plane.
An arrangementof great-circlearcs on a sphere.
Algorithms for 3D Printing and Other Manufacturing Methodologies 4
![Page 5: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/5.jpg)
Arrangement Background
Arrangements have numerous applicationsrobot motion planning, computer vision, GIS, optimization,computational molecular biology
A planar map of the Boston area showing the top of the arm of cape cod.Raw data comes from the US Census 2000 TIGER/line data files
Algorithms for 3D Printing and Other Manufacturing Methodologies 5
![Page 6: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/6.jpg)
Arrangement 2D Complexity
Definition (Well Behaved Curves)Curves in a set C are well behaved, if each pair of curves in C intersect atmost some constant number of times.
Theorem (Arrangement in IR2)The maximum combinatorial complexity of an arrangement of nwell-behaved curves in the plane is Θ(n2).
The complexity of arrangements induced by n non-parallel lines is Ω(n2).
Algorithms for 3D Printing and Other Manufacturing Methodologies 6
![Page 7: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/7.jpg)
Arrangement dD Complexity
Definition (Hyperplane)A hyperplane is the set of solutions to a single equation AX = c, where Aand X are vectors and c is some constant.
A hyperplane is any codimension-1 vector subspace of a vector space.
Definition (Hypersurface)A hypersurface is the set of solutions to a single equationf (x1,x2, . . . ,xn) = 0.
Theorem (Arrangement in IRd)The maximum combinatorial complexity of an arrangement of nwell-behaved (hyper)surfaces in IRd is Θ(nd ).
The complexity of arrangements induced by n non-parallel hyperplanes isΩ(nd ).Algorithms for 3D Printing and Other Manufacturing Methodologies 7
![Page 8: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/8.jpg)
Planar MapsDefinition (Planar Graph)A planar graph is a graph that can be embedded in the plane.
Definition (Planar Map)A planar map is the embedding of a planar graph in the plane. It is asubdivision of the plane into vertices, (bounded) edges, and faces.
Theorem (Euler Formula)Let v, e, and f be the number of vertices, edges, and faces (including theunbounded face) of a planar map, then v − e + f = 2.
8 circlesvertices — 25edges — 56faces — 33 (including the unbounded face)
Algorithms for 3D Printing and Other Manufacturing Methodologies 8
![Page 9: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/9.jpg)
Surface MapsPlanar maps generalize to surfaces!
Definition (genus)A topologically invariant property of a surface defined as the largestnumber of nonintersecting simple closed curves that can be drawn on thesurface without separating it.
Theorem (Euler Formula)Let v, e, and f be the number of vertices, edges, and faces of a mapembedded on a surface with genus g, then v − e + f = 2−2g.
If each face is incident to at least 3 edges =⇒ 3f ≤ 2e
3v −3e +3f = 6−6g ≤ 3v −3e +2e
e ≤ 3v −6+6g
In a planar triangulation e = 3v −6, f = 2v −4Algorithms for 3D Printing and Other Manufacturing Methodologies 9
![Page 10: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/10.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 10
![Page 11: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/11.jpg)
The Cgal Arrangement_on_surface_2 PackageConstructs, maintains, modifies, traverses, queries, and presentsarrangements on two-dimensional parametric surfaces.Complete and Robust
All inputs are handled correctly (including degenerate input).Exact number types are used to achieve robustness.
Generic – easy to interface, extend, and adaptModular – geometric and topological aspects are separatedSupports among the others:
various point location strategieszone-construction paradigmsweep-line paradigm
F vertical decompositionF overlay computationF batched point location
Part of the Cgal basic library
Algorithms for 3D Printing and Other Manufacturing Methodologies 11
![Page 12: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/12.jpg)
Arrangement_2<Tra i t s , Dcel>
Is the main component in the 2D Arrangements package.An instance of this class template represents 2D arrangements.The representation of the arrangements and the various geometricalgorithms that operate on them are separated.The topological and geometric aspects are separated.
The T r a i t s template-parameter must be substituted by a model of ageometry-traits concept, e.g., ArrangementBasicTraits_2.
F Defines the type X_monotone_curve_2 that represents x -monotonecurves.
F Defines the type Point_2 that represents two-dimensional points.F Supports basic geometric predicates on these types.
The Dce l template-parameter must be substituted by a model of theArrangementDcel concept, e.g., A r r_de f au l t_dce l <Tra i t s >.
Algorithms for 3D Printing and Other Manufacturing Methodologies 12
![Page 13: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/13.jpg)
The Doubly-Connected Edge List
One of a family ofcombinatorial data-structurescalled the halfedgedata-structures.Represents each edge using apair of directed halfedges.Maintains incidence relationsamong cells of 0 (vertex), 1(edge), and 2 (face)dimensions.
v1
v2
eprev
enext
ee ′
f0
f1
f2
f3f4
u1
u1
The target vertex of a halfedge and the halefedge are incident to each other.The source and target vertices of a halfedge are adjacent.
Algorithms for 3D Printing and Other Manufacturing Methodologies 13
![Page 14: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/14.jpg)
The Doubly-Connected Edge List Components
VertexAn incident halfedge pointing at the vertex.
HalfedgeThe opposite halfedge.The previous halfedge in the component boundary.The next halfedge in the component boundary.The target vertex of the halfedge.The incident face.
FaceAn incident halfedge on the outer Ccb.An incident halfedge on each inner Ccb.
Connected component of the boundary (Ccb)The circular chains of halfedges around faces.
Algorithms for 3D Printing and Other Manufacturing Methodologies 14
![Page 15: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/15.jpg)
Arrangement Representation
The halfedges incident to a vertex form a circular list.The halfedges are clockwise oriented around the vertex.
The halfedges around faces form circular chains.All halfedges of a chain are incident to the same face.The halfedges are counterclockwise oriented along theboundary.
Geometric interpretation is added by classes built on top of thehalfedge data-structure.
Algorithms for 3D Printing and Other Manufacturing Methodologies 15
![Page 16: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/16.jpg)
Modifying the Arrangement
v1 v2f
v
u
Inserting a curve that inducesa new hole inside the face f ,a r r . i n s e r t _ i n _ f a c e _ i n t e r i o r ( c , f ) .
Inserting a curve from an existing vertex uthat corresponds to one of its endpoints,i n s e r t_ f r om_ l e f t_ v e r t e x ( c , v ) ,i n s e r t_ f r om_ r i g h t_v e r t e x ( c , v ) .
v1
v2
h 1
f f ′ h2
Inserting an x -monotone curve, the endpointsof which correspond to existing vertices v1and v2, i n s e r t _ a t _ v e r t i c e s ( c , v1 , v2 ) .
The new pair of halfedges close a new face f ′.The hole h1, which belonged to f before theinsertion, becomes a hole in this new face.
Algorithms for 3D Printing and Other Manufacturing Methodologies 16
![Page 17: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/17.jpg)
Application: Obtaining Silhouettes of PolytopesApplicationGiven a convex polytope P obtain the outline of the shadow of P cast onthe xy-plane, where the scene is illuminated by a light source at infinitydirected along the negative z-axis.
The silhouette is represented as an arrangement with two faces:an unbounded face anda single hole inside the unbounded face.
x
y
An icosahedron and its silhouette.
Algorithms for 3D Printing and Other Manufacturing Methodologies 17
![Page 18: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/18.jpg)
Application: Obtaining Silhouettes of Polytopes: InsertionInsert an edge into the arrangement only once to avoid overlaps.
Maintain a set of handles to polytope edges the projection of whichhave already been inserted into the arrangement.Implemented with the s td : : s e t data-structure.
F Requires the provision of a model of the StrictWeakOrdering.F A functor that compares handles:
s t r u c t Less_than_handle t emp la t e <typename Type>boo l o p e r a t o r ( ) ( Type s1 , Type s2 ) con s t r e t u r n (&(∗ s1 ) < &(∗ s2 ) ) ;
; s t d : : s e t<Po lyhedron_ha l f edge_cons t_hand le , Less_than_handle >
Determine the appropriate insertion routines.Maintain a map that maps polyhedron vertices to correspondingarrangement vertices.Implemented with the s td : : map data-structure.s t d : : map<typename Po lyhedron : : Ver tex_const_hand le ,
typename Arrangement : : Vertex_hand le , Less_than_handle>
Algorithms for 3D Printing and Other Manufacturing Methodologies 18
![Page 19: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/19.jpg)
Application: Obtaining Silhouettes of Polytopes:ConstructionObtain the arrangement A that represents the silhouette of a Convex Polytope P1. Construct the input convex polytope P.2. Compute the normals to all facets of P.3. for each facet f of P4. if f is facing upwards (has a positive z component)5. for each edge e on the boundary of f6. if the projection of e hasn’t been inserted yet into A7. Insert the projection of e into A .
Computes the normal to a facet. s t r u c t Normal_equat ion
temp la t e <typename Facet> typename Facet : : Plane_3 op e r a t o r ( ) ( Facet& f ) typename Facet : : Ha l f edge_hand l e h = f . h a l f e d g e ( ) ;r e t u r n CGAL : : c r o s s_p roduc t (h−>next ()−>ve r t e x ()−>po i n t ( ) −
h−>ve r t e x ()−>po i n t ( ) ,h−>next ()−>next ()−>ve r t e x ()−>po i n t ( ) −h−>next ()−>ve r t e x ()−>po i n t ( ) ) ;
;
Algorithms for 3D Printing and Other Manufacturing Methodologies 19
![Page 20: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/20.jpg)
Traversing the Halfedges Incident to an ArrangementVertex
Print all the halfedges incident to a vertex. t emp la t e <typename Arrangement>vo i d p r i n t _ i n c i d e n t_ h a l f e d g e s ( typename Arrangement : : Ve r tex_cons t_hand le v )
i f ( v−>i s _ i s o l a t e d ( ) ) s td : : cout << "The v e r t e x ( " << v−>po i n t ( ) << " ) i s i s o l a t e d " << std : : e nd l ;r e t u r n ;
s td : : cout << "The n e i g hbo r s o f the v e r t e x ( " << v−>po i n t ( ) << " ) a r e : " ;typename Arrangement : : Ha l f e dg e_a r ound_ve r t e x_con s t_c i r c u l a t o r f i r s t , c u r r ;f i r s t = cu r r = v−>i n c i d e n t_ h a l f e d g e s ( ) ;do s td : : cout << " ( " << cur r−>sou r c e ()−>po i n t ( ) << " ) " ;wh i l e (++cu r r != f i r s t ) ;s t d : : cout << s td : : e nd l ;
Algorithms for 3D Printing and Other Manufacturing Methodologies 20
![Page 21: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/21.jpg)
Traversing the Halfedges of an Arrangement Ccb
Print all x -monotone curves along a given Ccb t emp la t e <typename Arrangement>vo i d p r i n t_ccb ( typename Arrangement : : C cb_ha l f e dg e_con s t_c i r c u l a t o r c i r c )
s td : : cout << " ( " << c i r c −>sou r c e ()−>po i n t ( ) << " ) " ;typename Arrangement : : C cb_ha l f e dg e_con s t_c i r c u l a t o r c u r r = c i r c ;do
typename Arrangement : : Ha l f edge_cons t_hand l e he = cu r r ;s t d : : cout << " [ " << he−>curve ( ) << " ] "
<< " ( " << he−>t a r g e t ()−>po i n t ( ) << " ) " ; wh i l e (++cu r r != c i r c ) ;s t d : : cout << s td : : e nd l ;
he−>curve ( ) is equivalent to he−>twin ()−>curve ( ) ,he−>sou r c e ( ) is equivalent to he−>twin ()−>t a r g e t ( ) , andhe−>t a r g e t ( ) is equivalent to he−>twin ()−>sou r c e ( ) .
Algorithms for 3D Printing and Other Manufacturing Methodologies 21
![Page 22: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/22.jpg)
Traversing the Ccbs of an Arrangement FacePrint the outer and inner boundaries of a face. t emp la t e <typename Arrangement>vo i d p r i n t_ f a c e ( typename Arrangement : : Face_const_handle f )
// P r i n t the ou t e r boundary .i f ( f−>is_unbounded ( ) ) s t d : : cout << "Unbounded f a c e . " << std : : e nd l ;e l s e
s td : : cout << "Outer boundary : " ;p r in t_ccb<Arrangement >(f−>outer_ccb ( ) ) ;
// P r i n t the boundary o f each o f the h o l e s .s i z e_ t i ndex = 1 ;typename Arrangement : : Ho l e_con s t_ i t e r a t o r ho l e ;f o r ( ho l e = f−>ho l e s_beg i n ( ) ; h o l e != f−>holes_end ( ) ; ++hole , ++index )
s td : : cout << "Hole #" << index << " : " ;p r in t_ccb<Arrangement >(∗ ho l e ) ;
// P r i n t the i s o l a t e d v e r t i c e s .typename Arrangement : : I s o l a t e d_ v e r t e x_ c o n s t _ i t e r a t o r i v ;f o r ( i v = f−>i s o l a t e d_ v e r t i c e s _ b e g i n ( ) , i nd ex = 1 ;
i v != f−>i s o l a t e d_ v e r t i c e s _ e n d ( ) ; ++iv , ++index )s td : : cout << " I s o l a t e d v e r t e x #" << index << " : "
<< " ( " << iv−>po i n t ( ) << " ) " << std : : e nd l ; Algorithms for 3D Printing and Other Manufacturing Methodologies 22
![Page 23: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/23.jpg)
Traversing an ArrangementPrint all the cells of an arrangement. t emp la t e <typename Arrangement>vo i d p r i n t_a r r angement ( con s t Arrangement& a r r )
CGAL_precondit ion ( a r r . i s _ v a l i d ( ) ) ;
// P r i n t the ar rangement v e r t i c e s .typename Arrangement : : V e r t e x_con s t_ i t e r a t o r v i t ;s t d : : cout << a r r . number_o f_ve r t i c e s ( ) << " v e r t i c e s : " << s td : : e nd l ;f o r ( v i t = a r r . v e r t i c e s _ b e g i n ( ) ; v i t != a r r . v e r t i c e s_ end ( ) ; ++v i t )
s td : : cout << " ( " << v i t−>po i n t ( ) << " ) " ;i f ( v i t−>i s _ i s o l a t e d ( ) ) s t d : : cout << "− I s o l a t e d . " << s td : : e nd l ;e l s e s t d : : cout << "− deg r ee " << v i t−>deg ree ( ) << s td : : e nd l ;
// P r i n t the ar rangement edges .typename Arrangement : : Edge_con s t_ i t e r a t o r e i t ;s t d : : cout << a r r . number_of_edges ( ) << " edges : " << s td : : e nd l ;f o r ( e i t = a r r . edges_beg in ( ) ; e i t != a r r . edges_end ( ) ; ++e i t )
s t d : : cout << " [ " << e i t −>curve ( ) << " ] " << std : : e nd l ;
// P r i n t the ar rangement f a c e s .typename Arrangement : : F a c e_con s t_ i t e r a t o r f i t ;s t d : : cout << a r r . number_of_faces ( ) << " f a c e s : " << s td : : e nd l ;f o r ( f i t = a r r . f a c e s_beg i n ( ) ; f i t != a r r . faces_end ( ) ; ++f i t )
p r i n t_ f a c e <Arrangement >( f i t ) ; Algorithms for 3D Printing and Other Manufacturing Methodologies 23
![Page 24: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/24.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 24
![Page 25: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/25.jpg)
Vertical Decomposition
Is a refinement of the original subdivision A of n edges.
In the planeContains O(n) pseudo trapezoids (trianglesand trapezoids).A pseudo trapezoid is determined by
F 2 vertices left(∆) and right(∆), andF 2 segments top(∆) and bottom(∆).
Generalizes to higher dimensions and arrangements induces by wellbehaved objects.
bottom(∆)
top(∆)
left(∆)
top(∆)
bottom(∆)
left(∆)
bottom(∆)
top(∆)
left(∆) bottom(∆)
top(∆)
left(∆)
Algorithms for 3D Printing and Other Manufacturing Methodologies 25
![Page 26: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/26.jpg)
Vertical Decomposition Complexity
R—a bounding rectangleS—a set of n interior disjoint line segmentsT (S)—the trapezoidal map of ST (S) is a planar map with v vertices, e edges, and f facesA vertex of T (S) is either
a vertex of R,an endpoint of a segment in S, orthe point where the vertical extension hits
v ≤ 4+2n+2(2n) = 6n+4f ≤ 3n+1
The lower left corner of R is left(∆) of one trapezoidThe right endpoint of a segment can be left(∆) of one trapezoidThe left endpoint of a segment can be left(∆) of two trapezoid
Algorithms for 3D Printing and Other Manufacturing Methodologies 26
![Page 27: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/27.jpg)
Application: Decomposing an Arrangement of LineSegments
ApplicationConstructs the vertical decomposition of a given arrangement.
Algorithms for 3D Printing and Other Manufacturing Methodologies 27
![Page 28: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/28.jpg)
Decomposing an Arrangement of Line Segments: Code t emp la t e <typename Arrangement , typename Kerne l>vo i d v e r t i c a l _ d e c ompo s i t i o n ( Arrangement& ar r , Ke rne l& ke r )
t y p ed e f s t d : : p a i r <typename Arrangement : : Ver tex_const_hand le ,s t d : : p a i r <CGAL : : Object , CGAL : : Object> > Vd_entry ;
// For each v e r t e x i n the arrangment , l o c a t e the f e a t u r e tha t l i e s// d i r e c t l y be low i t and the f e a t u r e t ha t l i e s d i r e c t l y above i t .s t d : : l i s t <Vd_entry> v d_ l i s t ;CGAL : : decompose ( a r r , s t d : : b a c k_ i n s e r t e r ( v d_ l i s t ) ) ;
// Go ove r the v e r t i c e s ( g i v en i n a s c end i ng l e x i c o g r a p h i c a l xy−o r d e r ) ,// and add segements to the f e a u t r e s be low and above i t .c on s t typename Ke rne l : : Equal_2 equa l = ke r . equa l_2_ob jec t ( ) ;typename s td : : l i s t <Vd_entry >: : i t e r a t o r i t , p r ev = v d_ l i s t . end ( ) ;f o r ( i t = v d_ l i s t . b eg i n ( ) ; i t != v d_ l i s t . end ( ) ; ++i t )
// I f the f e a t u r e above the p r e v i o u s v e r t e x i s not the c u r r e n t v e r t e x ,// Add a v e r t i c a l segment to the f e a t u r e below the v e r t e x .typename Arrangement : : Ver tex_cons t_hand le v ;i f ( ( p r ev == v d_ l i s t . end ( ) ) | |
!CGAL : : a s s i g n ( v , prev−>second . second ) | |! equa l ( v−>po i n t ( ) , i t −>f i r s t −>po i n t ( ) ) )
add_ve r t i c a l_segment ( a r r , a r r . non_const_handle ( i t −>f i r s t ) , i t −>second . f i r s t , k e r ) ;// Add a v e r t i c a l segment to the f e a t u r e above the v e r t e x .add_ve r t i c a l_segment ( a r r , a r r . non_const_handle ( i t −>f i r s t ) , i t −>second . second , ke r ) ;p r ev = i t ;
Algorithms for 3D Printing and Other Manufacturing Methodologies 28
![Page 29: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/29.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point can
lie on an edge, orcoincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 29
![Page 30: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/30.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point can
lie on an edge, orcoincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 30
![Page 31: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/31.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
In degenerate situations the query point can
lie on an edge, orcoincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 31
![Page 32: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/32.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point canlie on an edge, or
coincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 32
![Page 33: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/33.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point canlie on an edge, or
coincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 33
![Page 34: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/34.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point canlie on an edge, orcoincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 34
![Page 35: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/35.jpg)
Arrangement Point Location
Given a subdivision A of the space into cells and a query point q, find thecell of A containing q.
q
In degenerate situations the query point canlie on an edge, orcoincide with a vertex.
Algorithms for 3D Printing and Other Manufacturing Methodologies 35
![Page 36: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/36.jpg)
Point Location Algorithms
Traditional Point Location StrategiesHierarchical data structure [Kir83]Persistent search trees [ST86]Random Incremental Construction [Mul91, Sei91]
Point-location in TriangulationsWalk along a line [DPT02]The Delaunay Hierarchy [Dev02]Jump & Walk [DMZ98, DLM99]
Other algorithmsEntropy based algorithms [Ary01]Point location using Grid [EKA84]
Algorithms for 3D Printing and Other Manufacturing Methodologies 36
![Page 37: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/37.jpg)
Cgal Point Location Strategies
NaiveTraverse all edges of the arrangement to find the closest.
Walk along lineWalk along a vertical line from infinity.
Trapezoidal map Randomized Incremental-Construction (RIC)Landmark
Algorithms for 3D Printing and Other Manufacturing Methodologies 37
![Page 38: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/38.jpg)
Walk Along a Line
Start from a known place in the arrangement and walk from theretowards the query point through a straight line.
No preprocessing performed.No storage space consumed.
The implementation in Cgal:Start from the unbounded face.Walk down to the point through a vertical line.Asymptotically O(n) time.In practice: quite good, and easy to maintain.
Algorithms for 3D Printing and Other Manufacturing Methodologies 38
![Page 39: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/39.jpg)
Triangulation Point Location
Preprocessing:Triangulate the planar map.
F Triangles are much simpler than the arbitrary shapes of faces.F O(n logn) time and O(n) space.F Retain relations between planar map vertices and triangulation.
Query:Find the triangle P containing the query point q.
F Walk from an arbitrary vertex.F O(n) time in the worst case, but O(
√n) time on average, if the
vertices are distributed uniformly at random.Find the face in the arrangement that contains the triangle P.
Algorithms for 3D Printing and Other Manufacturing Methodologies 39
![Page 40: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/40.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .
Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point q
Find the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 40
![Page 41: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/41.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .
Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point q
Find the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 41
![Page 42: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/42.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point q
Find the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 42
![Page 43: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/43.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point q
Find the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 43
![Page 44: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/44.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point qFind the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 44
![Page 45: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/45.jpg)
Landmark Point Location
Given an arrangement A
PreprocessChoose the landmarks and locatethem in A .Store the landmarks in a nearestneighbor search-structure.
Answer queryGiven a query point qFind the landmark ` closest to qusing the search structure.
F The landmarks are on a grid =⇒Nearest grid point found in O(1)time.
“Walk along a line” from ` to q.
q
`
Algorithms for 3D Printing and Other Manufacturing Methodologies 45
![Page 46: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/46.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.
PreprocessFor each segment in random order.
F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.
Answer queryGiven a query point q
Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 46
![Page 47: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/47.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.
F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.Answer query
Given a query point q
Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 47
![Page 48: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/48.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.F Update the trapezoidal map.
F Insert the new trapezoid into a search structure.O(n logn) time, O(n) space.
Answer queryGiven a query point q
Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 48
![Page 49: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/49.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.
Answer queryGiven a query point q
Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 49
![Page 50: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/50.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.Answer query
Given a query point q
Search the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 50
![Page 51: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/51.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.Answer query
Given a query point qSearch the trapezoid in the search structure.
Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 51
![Page 52: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/52.jpg)
Trapezoidal MapRandomized Incremental-Construction
A — an arrangement.Preprocess
For each segment in random order.F Update the trapezoidal map.F Insert the new trapezoid into a search structure.
O(n logn) time, O(n) space.Answer query
Given a query point qSearch the trapezoid in the search structure.Obtain the cell containing the trapezoid.O(logn) expected time (if the segments were processed in randomorder).
Algorithms for 3D Printing and Other Manufacturing Methodologies 52
![Page 53: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/53.jpg)
Point Location Complexity
Requirements:Fast query processing.Reasonably fast preprocessing.Small space data structure.
Naive Walk RIC Landmarks Triangulat PSTPreprocess time none none O(n logn) O(k logk) O(n logn) O(n logn)Memory space none none O(n) O(k) O(n) O(n logn)(∗)
Query time bad reasonable good good quite good goodCode simple quite simple complicated quite simple modular complicatedWalk — Walk along a line RIC — Random Incremental Construction based on trapezoidal decompositionTriangulat — Triangulation PST — Persistent Search Treek — number of landmarks(*) Can be reduced to O(n)
Algorithms for 3D Printing and Other Manufacturing Methodologies 53
![Page 54: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/54.jpg)
Point Location: PrintPrint a polymorphic object. t emp la t e <typename Arrangement_>vo i d p r i n t_p o i n t_ l o c a t i o n ( con s t typename Arrangement_ : : Point_2& q ,
CGAL : : A r r_po i n t_ l o c a t i o n_ r e s u l t <Arrangement_ >: : Type& ob j )
t y p ed e f Arrangement_ Arrangementt y p ed e f typename Arrangement : : Ver tex_cons t_hand le Ver tex_cons t_hand le ;t y p ed e f typename Arrangement : : Ha l f edge_cons t_hand l e Ha l f edge_cons t_hand l e ;t y p ed e f typename Arrangement : : Face_const_handle Face_const_handle ;
con s t Ver tex_cons t_hand le ∗ v ;con s t Ha l f edge_cons t_hand l e ∗ e ;con s t Face_const_handle ∗ f ;
s t d : : cout << "The po i n t ( " << q << " ) i s l o c a t e d " ;i f ( ( f = boos t : : get<Face_const_handle >(&ob j ) ) ) // l o c a t e d i n s i d e a f a c e
s td : : cout << " i n s i d e "<< ( ( (∗ f )−>is_unbounded ( ) ) ? " the unbounded " : " abounded " )<< " f a c e . " << s td : : e nd l ;
e l s e i f ( ( e = boos t : : get<Hal fedge_const_hand le >(&ob j ) ) ) // l o c a t e d on an edges td : : cout << "onan edge : " << (∗ e)−>curve ( ) << s td : : e nd l ;
e l s e i f ( ( v = boos t : : get<Vertex_const_hand le >(&ob j ) ) ) // l o c a t e d on a v e r t e xs td : : cout << "on" << ( ( (∗ v)−> i s _ i s o l a t e d ( ) ) ? " an i s o l a t e d " : " a " )
<< " v e r t e x : " << (∗ v)−>po i n t ( ) << s td : : e nd l ;e l s e CGAL_error_msg ( " I n v a l i d o b j e c t . " ) ; // t h i s shou l d neve r happen
Algorithms for 3D Printing and Other Manufacturing Methodologies 54
![Page 55: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/55.jpg)
Point Location: Locate t emp la t e <typename Po in tLoca t i on>vo i d l o c a t e_po i n t ( con s t Po i n tLo ca t i on& pl ,
con s t typename Po i n t_ l o c a t i o n : : Arrangement_2 : : Point_2& q )
t y p ed e f Po i n tLo ca t i o n Po i n t_ l o c a t i o n ;t y p ed e f typename Po i n t_ l o c a t i o n : : Arrangement_2 Arrangement_2 ;typename CGAL : : A r r_po i n t_ l o c a t i o n_ r e s u l t <Arrangement_2 >: : Type ob j = p l . l o c a t e ( q ) ;
// P r i n t the r e s u l t .p r i n t_po i n t_ l o c a t i o n <Arrangement_2>(q , ob j ) ;
q1q2 q3
q4 q5
q6
Algorithms for 3D Printing and Other Manufacturing Methodologies 55
![Page 56: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/56.jpg)
Point Location: Example // F i l e : e x_po i n t_ l o c a t i o n . cpp
#i n c l u d e <CGAL/ b a s i c . h>#i n c l u d e <CGAL/ Ar r_na i v e_po i n t_ l o c a t i o n . h>#i n c l u d e <CGAL/Ar r_ l andmark s_po in t_ loca t i on . h>
#i n c l u d e " a r r_ i n e xa c t_con s t r u c t i o n_s egmen t s . h"#i n c l u d e " p o i n t _ l o c a t i o n_ u t i l s . h"
t y p ed e f CGAL : : A r r_na i v e_po i n t_ l o ca t i on<Arrangement_2> Naive_p l ;t y p ed e f CGAL : : Ar r_ landmarks_po in t_ loca t i on<Arrangement_2> Landmarks_pl ;
i n t main ( )
// Cons t r u c t the ar rangement .Arrangement_2 a r r ;con s t ruc t_segment s_a r r ( a r r ) ;
// Perform some po in t− l o c a t i o n q u e r i e s u s i n g the na i v e s t r a t e g y .Na ive_p l na i v e_p l ( a r r ) ;l o c a t e_po i n t ( na i ve_p l , Point_2 (1 , 4 ) ) ; // q1
// Attach the landmarks o b j e c t to the ar rangement and per fo rm q u e r i e s .Landmarks_pl landmarks_p l ;l andmarks_p l . a t t a ch ( a r r ) ;l o c a t e_po i n t ( landmarks_pl , Point_2 (3 , 2 ) ) ; // q4
r e t u r n 0 ; Algorithms for 3D Printing and Other Manufacturing Methodologies 56
![Page 57: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/57.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 57
![Page 58: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/58.jpg)
The Zone of Curves in Arrangements
Definition (Zone)Given an arrangement of curves A = A (C ) in the plane, the zone of anadditional curve γ /∈ C in A is the union of the features of A , whoseclosure is intersected by γ.
γ The zone of a line γ in an arrangement oflines.
Algorithms for 3D Printing and Other Manufacturing Methodologies 58
![Page 59: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/59.jpg)
The Zone of lines in an arrangement of Lines
The complexity of a zone is the total complexity of all features the zoneconsists of.
Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.
γ Vertices Edges Faces TotalNumber 1 6 6 13Complexity 1 17 41 53
Algorithms for 3D Printing and Other Manufacturing Methodologies 59
![Page 60: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/60.jpg)
The Zone of lines in an arrangement of Lines
The complexity of a zone is the total complexity of all features the zoneconsists of.
Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.
γ Vertices Edges Faces TotalNumber 1 6 6 13Complexity 1 17 41 53
Algorithms for 3D Printing and Other Manufacturing Methodologies 60
![Page 61: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/61.jpg)
The Zone of lines in an arrangement of Lines
The complexity of a zone is the total complexity of all features the zoneconsists of.
Theorem (Zone Complexity)The complexity of the zone of a line in an arrangement of n lines in theplane is O(n). It can be computed in O(n) time.
u
w
γ Vertices Edges Faces TotalNumber 1 7 7 15Complexity 1 21 53 68
Algorithms for 3D Printing and Other Manufacturing Methodologies 61
![Page 62: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/62.jpg)
The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ
uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2
γ
The proof assumes generalposition
It can be extended tohandle degeneracies.
Algorithms for 3D Printing and Other Manufacturing Methodologies 62
![Page 63: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/63.jpg)
The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ
uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2
`
γ
The proof assumes generalposition
It can be extended tohandle degeneracies.
Algorithms for 3D Printing and Other Manufacturing Methodologies 63
![Page 64: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/64.jpg)
The Zone of lines in arrangement of Lines ComplexityThe number of left bounding edges of the faces in the zone of γ is≤ 3nBy symmetry, the number of right bounding edges is ≤ 3n as wellProof by induction on n` is the line that has the rightmost intersection with γ
uw is a new left bounding edge—this adds 1` splits a left bounding edge at u and w—this adds ≤ 2
`u
w
γ
The proof assumes generalposition
It can be extended tohandle degeneracies.
Algorithms for 3D Printing and Other Manufacturing Methodologies 64
![Page 65: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/65.jpg)
Zone Application: Incremental Insertion
Definition (Incremental Insertion)Given an x -monotone curve γ and an arrangement A induced by a set ofcurves C , where all curves in γ∪C are well behaved, insert γ into A .
Find the location of one endpoint of the curve γ in A .Traverse the zone of the curve γ.
Each time γ crosses an existing vertex v split γ at v into subcurves.Each time γ crosses an existing edge e split γ and e into subcurves,respectively.
Algorithms for 3D Printing and Other Manufacturing Methodologies 65
![Page 66: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/66.jpg)
The Zone Computation Algorithmic Framework
Arrangement_zone_2 class templateComputes the zone of an arrangement.Is part of 2D Arrangements package.Is parameterized with a zone visitor
Models the concept ZoneV i s i t o r_2Serves as the foundation of a family of concrete operations
Inserting a single curve into an arrangementF The visitor modifies the arrangement operand as the computation
progresses.Determining whether a query curve intersects with the curves of anarrangement.Determining whether a query curve passes through an existingarrangement vertex.
F If the answer is positive, the process can terminate as soon as thevertex is located.
Algorithms for 3D Printing and Other Manufacturing Methodologies 66
![Page 67: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/67.jpg)
Incremental Insertion // F i l e : e x_ i n c r emen t a l _ i n s e r t i o n . cpp
#i n c l u d e <CGAL/ b a s i c . h>#i n c l u d e <CGAL/ Ar r_na i v e_po i n t_ l o c a t i o n . h>
#i n c l u d e " a r r_exac t_con s t r u c t i on_segmen t s . h"#i n c l u d e " a r r _ p r i n t . h"
i n t main ( )
// Cons t r u c t the ar rangement o f f i v e l i n e segments .Arrangement_2 a r r ;Na ive_p l p l ( a r r ) ;CGAL : : i n s e r t_non_ i n t e r s e c t i n g_ cu r v e ( a r r , Segment_2 ( Point_2 (1 , 0 ) , Point_2 (2 , 4 ) ) , p l ) ;CGAL : : i n s e r t_non_ i n t e r s e c t i n g_ cu r v e ( a r r , Segment_2 ( Point_2 (5 , 0 ) , Point_2 (5 , 5 ) ) ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (1 , 0 ) , Point_2 (5 , 3 ) ) , p l ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (0 , 2 ) , Point_2 (6 , 0 ) ) ) ;CGAL : : i n s e r t ( a r r , Segment_2 ( Point_2 (3 , 0 ) , Point_2 (5 , 5 ) ) , p l ) ;p r i n t_a r r angemen t_s i z e ( a r r ) ;r e t u r n 0 ;
s1
s2
s3
s4s5
Algorithms for 3D Printing and Other Manufacturing Methodologies 67
![Page 68: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/68.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 68
![Page 69: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/69.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 69
![Page 70: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/70.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 70
![Page 71: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/71.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 71
![Page 72: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/72.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 72
![Page 73: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/73.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 73
![Page 74: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/74.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 74
![Page 75: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/75.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 75
![Page 76: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/76.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 76
![Page 77: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/77.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 77
![Page 78: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/78.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 78
![Page 79: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/79.jpg)
The Plane Sweep Algorithmic Framework[BO79]
Initialize an event queue with all endpoints sorted lexicographicallyWhile the queue is not empty, extract and process an event
Remove all x -monotone curves to the left of the current event pointfrom a sorted container of curvesInsert all x -monotone curves to the right of the current event pointinto the curve containerCompute intersections between existing curves and newly insertedcurves, and insert them into the event queue
Algorithms for 3D Printing and Other Manufacturing Methodologies 79
![Page 80: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/80.jpg)
Plane Sweep: Event Queue
Implemented as a balanced binary search tree (say red-black tree)Operations, m—number of events.
Fetching the next event—O(logm) amortized time.Testing whether an event exists—(O(logm) amortized time.
F Cannot use a heap!Inserting an event—O(logm) amortized time.
Algorithms for 3D Printing and Other Manufacturing Methodologies 80
![Page 81: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/81.jpg)
Plane Sweep: Status Structure
Is a dynamic one-dimensional arrangement along the sweep line.Implemented as a balanced binary search tree
Interior nodes —- guide the search, store the segment from therightmost leaf in its left subtree.Leaf nodes — segments.
Operations—O(logn) amortized time.
s1
s2
s3s4
s5`
s3
s1
s1 s2
s2 s3
s4
s4 s5
Algorithms for 3D Printing and Other Manufacturing Methodologies 81
![Page 82: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/82.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 82
![Page 83: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/83.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 83
![Page 84: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/84.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 84
![Page 85: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/85.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 85
![Page 86: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/86.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 86
![Page 87: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/87.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 87
![Page 88: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/88.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 88
![Page 89: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/89.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 89
![Page 90: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/90.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 90
![Page 91: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/91.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 91
![Page 92: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/92.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 92
![Page 93: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/93.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 93
![Page 94: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/94.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 94
![Page 95: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/95.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 95
![Page 96: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/96.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 96
![Page 97: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/97.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 97
![Page 98: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/98.jpg)
Plane Sweep ComplexityTheoremAll points of intersection between the curves in C can be reported inO((n+k) logn) time and O(n) space.
C—a set of n x -monotone curves in the plane.k—the number of intersection points.Constructing the event queue takes O(n logn) time.p—an event
p is fetched and removed from the event queue.p is handled once.If p does not have right curves≤ 1 event is generated.
If p has right curves≤ 2 events are generated.
Algorithms for 3D Printing and Other Manufacturing Methodologies 98
![Page 99: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/99.jpg)
Plane Sweep Space Complexity
The status-structure size is in O(n)The event-queue size is definitely at most 2n+kIt can be shown that the event-queue size is in O(n log2 n)The event-queue size can be kept linear.
Points of intersections between pairs of curves that are not adjacent onthe sweep line are deleted from the event queue.It increases the time complexity but only by a constant factor
Algorithms for 3D Printing and Other Manufacturing Methodologies 99
![Page 100: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/100.jpg)
Aggregate Insertion // F i l e : e x_agg r e g a t e d_ i n s e r t i o n . cpp
#i n c l u d e " a r r_exac t_con s t r u c t i on_segmen t s . h"#i n c l u d e " a r r _ p r i n t . h"
i n t main ( )
// Agg r ega t e l y c o n s t r u c t the ar rangement o f f i v e l i n e segments .Segment_2 segments [ ] = Segment_2 ( Point_2 (1 , 0 ) , Point_2 (2 , 4 ) ) ,
Segment_2 ( Point_2 (5 , 0 ) , Point_2 (5 , 5 ) ) ,Segment_2 ( Point_2 (1 , 0 ) , Point_2 (5 , 3 ) ) ,Segment_2 ( Point_2 (0 , 2 ) , Point_2 (6 , 0 ) ) ,Segment_2 ( Point_2 (3 , 0 ) , Point_2 (5 , 5 ) ) ;
Arrangement_2 a r r ;CGAL : : i n s e r t ( a r r , segments , segments + s i z e o f ( segments )/ s i z e o f ( Segment_2 ) ) ;p r i n t_a r r angemen t_s i z e ( a r r ) ;r e t u r n 0 ;
s1
s2
s3
s4s5
Algorithms for 3D Printing and Other Manufacturing Methodologies 100
![Page 101: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/101.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 101
![Page 102: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/102.jpg)
Handling Enpoints at InfinityClipping the unbounded curves Using an infimaximal box
[Mehlhorn & Seel, 2003]
Simple, the sweep algorithm isunchanged
Not simpleMay require large bit-lengthsDesigned for linear objects
Not online Online (no need for clipping)
The resulting arrangement has asingle unbounded face
The resulting arrangement hasmultiple unbounded faces (anda single ficticious face)
Algorithms for 3D Printing and Other Manufacturing Methodologies 102
![Page 103: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/103.jpg)
Arrangement of (Unbounded) Lines
vbl
vtl
vbr
vtr
v1
v8
v2 v7
v3
v6
v4
v5
Algorithms for 3D Printing and Other Manufacturing Methodologies 103
![Page 104: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/104.jpg)
Vertices of Unbounded ArrangementThere are 4 types of unbounded-arrangement vertices
1 A “normal” vertex associated with a point in IR2.2 A vertex that represents an unbounded end of an x -monotone curve
that approaches x =−∞ or x = ∞.3 A vertex that represents the unbounded end of a vertical line or ray or
of a curve with a vertical asymptote (finite x -coordinate and anunbounded y -coordinate).
4 A fictitious vertices that represents one of 4 corners of the imaginarybounding rectangle.
A vertex at infinity of Type 2 or Type 3 alwayshas three incident edges:
1 edge associated with an x -monotone curve, and2 fictitious edges connecting the vertex to its adjacentvertices at infinity or the corners of the boundingrectangle.
Algorithms for 3D Printing and Other Manufacturing Methodologies 104
![Page 105: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/105.jpg)
Sweeping Unbounded Curves
Curves may not have finite endpointsInitializing the event queue requires special treatment
Intersection events are associated with finite points
xy = 1, x = 0, and y = 0
Algorithms for 3D Printing and Other Manufacturing Methodologies 105
![Page 106: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/106.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 106
![Page 107: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/107.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 107
![Page 108: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/108.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 108
![Page 109: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/109.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 109
![Page 110: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/110.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 110
![Page 111: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/111.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 111
![Page 112: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/112.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 112
![Page 113: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/113.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 113
![Page 114: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/114.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 114
![Page 115: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/115.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 115
![Page 116: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/116.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 116
![Page 117: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/117.jpg)
The Augmented Sweep Line for Unbounded Curves
Categorize all curve endsInitialize an event queue with all curve ends sorted lex.
Ends of unbounded curves do not coincideComparison between events are available through the traits
While the queue is not empty proceed as usualNo need to look for unbounded events in the status line!
Algorithms for 3D Printing and Other Manufacturing Methodologies 117
![Page 118: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/118.jpg)
Outline
1 2D ArrangementsDefinitions & ComplexityRepresentationQueries
Vertical DecompositionPoint Location Queries
The Zone Computation Algorithmic FrameworkThe Plane Sweep Algorithmic FrameworkArrangement of Unbounded CurvesLiterature
Algorithms for 3D Printing and Other Manufacturing Methodologies 118
![Page 119: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/119.jpg)
Arrangement Bibliography IBoris Aronov and Dmitriy DrusvyatskiyComplexity of a Single Face in an Arrangement of s-Intersecting CurvesarXiv:1108.4336, 2011
Jon Louis Bentley and Thomas Ottmann.Algorithms for Reporting and Counting Geometric Intersections.IEEE Transactions on Computers, 28(9): 643–647, 1979.
Eric Berberich, Efi Fogel, Dan Halperin, Michael Kerber, and Ophir Setter.Arrangements on parametric surfaces ii: Concretizations and applications, 2009.Mathematics in Computer Science, 4(1):67–91,2010.
Ulrich Finke and Klaus H. Hinrichs.Overlaying simply connected planar subdivisions in linear time.In Proceedings of 11th Annual ACM Symposium on Computational Geometry (SoCG), pages 119–126. Association forComputing Machinery (ACM) Press, 1995.
Ron Wein, Efi Fogel, Baruch Zukerman, Dan Halperin, and Eric Berberich.2D Arrangements.In Cgal Editorial Board, editor, Cgal User and Reference Manual. 4.4 edition, 2014.http://www.cgal.org/Manual/latest/doc_html/cgal_manual/packages.html#Pkg:Arrangement2.
David G. Kirkpatrick.Optimal search in planar subdivisions.SIAM Journal on Computing. 12(1):28–35,1983.
N. Sarnak and Robert E. Tarjan.Planar point location using persistent search trees.Communications of the ACM. 29(7):669–679, 1986.
Kentan Mulmuley.A fast planar partition algorithm, I.Journal of Symbolic Computation. 10(3-4):253–280,1990.
Algorithms for 3D Printing and Other Manufacturing Methodologies 119
![Page 120: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/120.jpg)
Arrangement Bibliography IIRaimund SeidelA Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for TriangulatingPolygons.Computational Geometry: Theory and Applications. 1(1):51–64, 1991.
Olivier Devillers, Sylvain Pion, and Monique Teillaud.Walking in a triangulation.International Journal of Foundations of Computer Science. 13:181–199,2002.
Luc Devroye Christophe, Christophe Lemaire, and Jean-Michel Moreau.Fast Delaunay Point-Location with Search Structures.In Proceedings of 11th Canadian Conference on Computational Geometry. Pages 136–141, 1999.
Luc Devroye, Ernst Peter Mücke, and Binhai Zhu.A Note on Point Location in Delaunay Triangulations of Random Points.Algorithmica. 22:477–482, 1998.
Olivier Devillers.The Delaunay hierarchy.International Journal of Foundations of Computer Science. 13:163-180, 2002.
Sunil AryaA Simple Entropy-Based Algorithm for Planar Point Location.ACM Transactions on Graphics. 3(2), 2007
Masato Edahiro, Iwao Kokubo, And Takao AsanoA new Point-Location Algorithm and its Practical Efficiency: comparison with existing algorithmsACM Transactions on Graphics. 3(2):86–109, 1984.
Micha Sharir and Pankaj Kumar AgarwalDavenport-Schinzel Sequences and Their Geometric Applications.Cambridge University Press, New York, NY, 1995.
Algorithms for 3D Printing and Other Manufacturing Methodologies 120
![Page 121: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/121.jpg)
Arrangement Bibliography III
Bernard Chazelle, Leonidas J. Guibas, and Der-Tsai Le.The Power of Geometric Duality.BIT, 25:76–90, 1985.
Herbert Edelsbrunner,Algorithms in Combinatorial Geometry,Springer, Heidelberg, 1987.
Mark de Berg, Mark van Kreveld, Mark H. Overmars, and Otfried Cheong.Computational Geometry: Algorithms and Applications.Springer, 3rd edition, 2008.
Herbert Edelsbrunner, Raimund Seidel, and Micha Sharir.On the Zone Theorem for Hyperplane Arrangements.SIAM Journal on Computing. 22(2):418–429,1993.
Silvio Micali and Vijay V. Vazirani.An O(
√|V ||E |) Algorithm for Finding Maximum Matching in General Graphs.
Proceedings of 21st Annual IEEE Symposium on the Foundations of Computer Science, pages 17–27, 1980.
Jack Edmonds.Paths, Trees, and Flowers.Canadian Journal of Mathematics, 17:449–467,1965.
Robert Endre Tarjan.Data structures and network algorithms, Society for Industrial and Applied Mathematics (SIAM), 1983.
Marcin Mucha and Piotr Sankowski.Maximum Matchings via Gaussian EliminationProceedings of 45th Annual IEEE Symposium on the Foundations of Computer Science, pages 248–255, 2004.
Algorithms for 3D Printing and Other Manufacturing Methodologies 121
![Page 122: Algorithms for 3D Printing and Other Manufacturing Methodologiesacg.cs.tau.ac.il/courses/3d-printing/arr.pdf · 2017. 5. 9. · PlanarMaps Definition(PlanarGraph) Aplanargraphisagraphthatcanbeembeddedintheplane.](https://reader036.fdocuments.us/reader036/viewer/2022081621/6131e1ac1ecc515869450386/html5/thumbnails/122.jpg)
Arrangement Bibliography IV
Jeremy G. Siek, Lie-Quan Lee, and Andrew Lumsdaine.The Boost Graph Library.Addison-Wesley, 2002
Efi Fogel, Ron Wein, and Dan Halperin.Cgal Arrangements and Their Applications, A Step-by-Step Guide.Springer, 2012.
Algorithms for 3D Printing and Other Manufacturing Methodologies 122