computing the overlay of two
play

Computing the Overlay of Two Computational Geometry Subdivisions - PowerPoint PPT Presentation

Yazd Univ. Computing the Overlay of Two Computational Geometry Subdivisions Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions 1392-1 1 / 25 We have solved the easiest case of the map overlay problem, where the


  1. Yazd Univ. Computing the Overlay of Two Computational Geometry Subdivisions Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions 1392-1 1 / 25

  2. We have solved the easiest case of the map overlay problem, where the two maps are networks represented as collections of line segments. Yazd Univ. In general, maps have a more complicated structure: they are subdivisions of the plane into labeled Computational regions. Geometry Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions 2 / 25

  3. Before we can give an algorithm for computing the overlay of two subdivisions, we must develop a suitable representation for a subdivision. Yazd Univ. Storing a subdivision as a collection of line segments is not such a good idea. Computational Geometry Operations like reporting the boundary of a region would be rather complicated. Doubly Connected Edge List (DCEL) Add topological information: which segments bound Computing the a given region, which regions are adjacent, and so Overlay of Two Subdivisions on. 3 / 25

  4. edge Yazd Univ. Computational disconnected Geometry vertex subdivision Doubly Connected Edge List (DCEL) Computing the face Overlay of Two Subdivisions Complexity of a subdivision #faces+#edges+#vertices. 4 / 25

  5. Yazd Univ. Computational Geometry incident Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions Complexity of a subdivision #faces+#edges+#vertices. 4 / 25

  6. What kind of queries? What is the face containing a given point? (TOO MUCH!) Yazd Univ. Walking around the boundary of a given face, Find the face from an adjacent one if we are given a Computational Geometry common edge, Visit all the edges around a given vertex. Doubly Connected Edge List (DCEL) Computing the Overlay of Two The representation that we shall discuss supports these Subdivisions operations. It is called the doubly-connected edge list (DCEL). 5 / 25

  7. DCEL DCEL contains: Yazd Univ. a record for each edge, a record for each vertex, Computational Geometry a record for each face, plus attribute information. Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions 6 / 25

  8. Yazd Univ. Computational Geometry Doubly Connected Edge List (DCEL) w → − Computing the e Overlay of Two → Twin ( − Subdivisions e ) v To be able to traverse the boundary of a face, we need to keep a pointer to a half-edge of any boundary component and isolated points. 7 / 25

  9. Yazd Univ. Computational Geometry Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions To be able to traverse the boundary of a face, we need to keep a pointer to a half-edge of any boundary component and isolated points. 7 / 25

  10. Yazd Univ. Computational Geometry Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions To be able to traverse the boundary of a face, we need to keep a pointer to a half-edge of any boundary component and isolated points. 7 / 25

  11. Yazd Univ. Computational Geometry Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions To be able to traverse the boundary of a face, we need to keep a pointer to a half-edge of any boundary component and isolated points. 7 / 25

  12. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  13. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  14. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  15. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  16. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  17. DCEL DCEL contains: a record for each vertex, Yazd Univ. Coordinates ( v ) : the coordinates of v , 1 IncidentEdge ( v ) : a pointer to an arbitrary half-edge 2 Computational that has v as its origin. Geometry a record for each face, OuterComponent ( f ) : to some half-edge on its outer Doubly Connected 1 Edge List (DCEL) boundary (nil if unbounded), Computing the InnerComponents ( f ) : a pointer to some half-edge 2 Overlay of Two Subdivisions on the boundary of the hole, for each hole. a record for each half-edge − → e , Origin ( − → e ) : a pointer to its origin, 1 Twin ( − → e ) a pointer to its twin half-edge, 2 IncidentFace ( − → e ) : a pointer to the face that it 3 bounds. Next ( − → e ) and Prev ( − → e ) : a pointer to the next and 4 previous edge on the boundary of IncidentFace ( − → e ) . 8 / 25

  18. DCEL Origin ( − → e ) Twin( − Yazd Univ. → e ) Computational e ) Geometry → Next( − − → e Doubly Connected Edge List (DCEL) Computing the Prev( − Overlay of Two Subdivisions → e ) IncidentFace( − → e ) 9 / 25

  19. DCEL:Example − → e 1 , 1 v 1 v 2 → − e 1 , 2 → − f 2 e 4 , 1 Yazd Univ. e 3 , 2 − → e 4 , 2 → − → − e 3 , 1 Computational Geometry f 1 v 3 Doubly Connected e 2 , 2 → Edge List (DCEL) − e 2 , 1 → − Computing the Overlay of Two Subdivisions v 4 10 / 25

  20. DCEL Time complexity of queries? Yazd Univ. Walking around the boundary of a given face, Find the face from an adjacent one if we are given a Computational Geometry common edge, Visit all the edges around a given vertex. Doubly Connected Edge List (DCEL) Computing the Overlay of Two Subdivisions 11 / 25

Recommend


More recommend