Computational Geometry Lecture 2b: Subdivision representation and - - PowerPoint PPT Presentation

computational geometry
SMART_READER_LITE
LIVE PREVIEW

Computational Geometry Lecture 2b: Subdivision representation and - - PowerPoint PPT Presentation

Motivation Doubly-connected edge list Map overlay Subdivision representation and map overlay Computational Geometry Lecture 2b: Subdivision representation and map overlay 1 Computational Geometry Lecture 2b: Subdivision representation and


slide-1
SLIDE 1

Motivation Doubly-connected edge list Map overlay

Subdivision representation and map overlay

Computational Geometry

Lecture 2b: Subdivision representation and map overlay

Computational Geometry Lecture 2b: Subdivision representation and map overlay

1

slide-2
SLIDE 2

Motivation Doubly-connected edge list Map overlay Map overlay

Map overlay

Map overlay is the combination of two (or more) map layers It is needed to answer questions like: What is the total length of roads through forests? What is the total area of corn fields within 1km from a river? What area of all lakes occurs at the geological soil type “rock”?

Computational Geometry Lecture 2b: Subdivision representation and map overlay

2

slide-3
SLIDE 3

Motivation Doubly-connected edge list Map overlay Map overlay

Map overlay

To solve map overlay questions, we need (at the least) intersection points from two sets of line segments (possibly, boundaries of regions)

Computational Geometry Lecture 2b: Subdivision representation and map overlay

3

slide-4
SLIDE 4

Motivation Doubly-connected edge list Map overlay Map overlay

Map overlay

To solve map overlay questions, we also need to be able to represent subdivisions

clay clay sand sand loess rock rock sand sand loess clay rock rock clay

Computational Geometry Lecture 2b: Subdivision representation and map overlay

4

slide-5
SLIDE 5

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Subdivisions

A planar subdivision is a structure induced by a set of line segments in the plane that can only intersect at common

  • endpoints. It consists of vertices, edges, and faces

face vertex edge

Computational Geometry Lecture 2b: Subdivision representation and map overlay

5

slide-6
SLIDE 6

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Subdivisions

Vertices are the endpoints of the line segments Edges are the interiors of the line segments Faces are the interiors of connected two-dimensional regions that do not contain any point of any line segment Objects of the same dimensionality are adjacent or not; objects of different dimensionality are incident or not

adjacent incident

Computational Geometry Lecture 2b: Subdivision representation and map overlay

6

slide-7
SLIDE 7

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Subdivisions

Exactly one face is unbounded, the

  • uter face

Every other face is bounded and has an outer boundary consisting of vertices and edges Any face has zero or more inner boundaries

Computational Geometry Lecture 2b: Subdivision representation and map overlay

7

slide-8
SLIDE 8

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Subdivisions

Vertices, edges, and faces form a partition of the plane If a planar subdivision is induced by n line segments, it has exactly n edges, and at most 2n vertices

Computational Geometry Lecture 2b: Subdivision representation and map overlay

8

slide-9
SLIDE 9

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Subdivisions

And how many faces? Observe: Every face is bounded by at least 3 edges, and every edge bounds at most 2 faces ⇒ F ≤ 2E/3 = 2n/3 = O(n)

Computational Geometry Lecture 2b: Subdivision representation and map overlay

9

slide-10
SLIDE 10

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Euler’s formula

Euler’s formula for planar graphs: If S is a planar subdivision with V vertices, E edges, and F faces, then V −E +F ≥ 2, with equality iff the vertices and edges of S form a connected set

V = 9, E = 10, F = 4 V = 11, E = 13, F = 4 V − E + F = 3 V − E + F = 2

Computational Geometry Lecture 2b: Subdivision representation and map overlay

10

slide-11
SLIDE 11

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

A subdivision representation has a vertex-object class, an edge-object class, and a face-object class It is a pointer structure where

  • bjects can reach incident (or

adjacent) objects easily

Computational Geometry Lecture 2b: Subdivision representation and map overlay

11

slide-12
SLIDE 12

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

Use the edge as the central object For any edge, exactly two vertices are incident, exactly two faces are incident, and zero or more other edges are adjacent

f1 f2 v1 v2

Computational Geometry Lecture 2b: Subdivision representation and map overlay

12

slide-13
SLIDE 13

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

Use the edge as the central object, and give it a direction Now we can speak of Origin, Destination, Left Face, and Right Face

fleft vorigin fright vdestination

Computational Geometry Lecture 2b: Subdivision representation and map overlay

13

slide-14
SLIDE 14

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

Four edges are of special interest

fleft fright for fright for fright for fleft for fleft next edge next edge previous edge previous edge

Computational Geometry Lecture 2b: Subdivision representation and map overlay

14

slide-15
SLIDE 15

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

It would be nice if we could traverse a boundary cycle by continuously following the next edge for fleft or fright ... but, no consistent edge

  • rientation needs to exist

Computational Geometry Lecture 2b: Subdivision representation and map overlay

15

slide-16
SLIDE 16

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

Representing subdivisions

We apply a trick/hack/impossibility: split every edge length-wise(!) into two half-edges Every half-edge: has exactly one half-edge as its Twin is directed opposite to its Twin is incident to only one face (left)

  • e

Twin( e) Next( e) Prev( e)

Computational Geometry Lecture 2b: Subdivision representation and map overlay

16

slide-17
SLIDE 17

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

The doubly-connected edge list

The doubly-connected edge list is a subdivision representation structure with an object for every vertex, every half-edge, and every face A vertex object stores: Coordinates IncidentEdge (some half-edge leaving it) A half-edge object stores: Origin (vertex) Twin (half-edge) IncidentFace (face) Next (half-edge in cycle

  • f the incident face)

Prev (half-edge in cycle

  • f the incident face)

Computational Geometry Lecture 2b: Subdivision representation and map overlay

17

slide-18
SLIDE 18

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

The doubly-connected edge list

A face object stores: OuterComponent (half-edge of outer cycle) InnerComponents (list

  • f half-edges for the inner

cycles bounding the face)

f

Computational Geometry Lecture 2b: Subdivision representation and map overlay

18

slide-19
SLIDE 19

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

The doubly-connected edge list

Question: A half-edge e can directly access its Origin, and get the coordinates of one endpoint. How can it get the coordinates of its other endpoint? Question: For a vertex v, how do we find all adjacent vertices?

v

  • e

Twin( e) Next( e) Prev( e) Origin( e)

Computational Geometry Lecture 2b: Subdivision representation and map overlay

19

slide-20
SLIDE 20

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

The doubly-connected edge list

A vertex object stores: Coordinates IncidentEdge Any attributes, mark bits A face object stores: OuterComponent (half-edge of outer cycle) InnerComponents (half-edges for the inner cycles) Any attributes, mark bits A half-edge object stores: Origin (vertex) Twin (half-edge) IncidentFace (face) Next (half-edge in cycle

  • f the incident face)

Prev (half-edge in cycle

  • f the incident face)

Any attributes, mark bits

Computational Geometry Lecture 2b: Subdivision representation and map overlay

20

slide-21
SLIDE 21

Motivation Doubly-connected edge list Map overlay Subdivisions Representing subdivisions DCEL structure

The doubly-connected edge list

Question: For a face f, how do we find all adjacent face names, assuming they are stored in an attribute? Write the code using the proper names like Next, OuterComponent, etc.

Computational Geometry Lecture 2b: Subdivision representation and map overlay

21

slide-22
SLIDE 22

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Map overlay problem

The map overlay problem for two subdivisions S1 and S2 is to compute a subdivision S that is the overlay of S1 and S2 All edges of S are (parts of) edges from S1 and S2. All vertices of S are also in S1 or S2, or intersections of edges from S1 and S2

Computational Geometry Lecture 2b: Subdivision representation and map overlay

22

slide-23
SLIDE 23

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Map overlay

We start by making a copy of S1 and

  • f S2 whose vertex and half-edge
  • bjects we will re-use

At first we do not compute face

  • bject information in the overlay

The output should be a doubly-connected edge list (DCEL)

  • f the overlay

Computational Geometry Lecture 2b: Subdivision representation and map overlay

23

slide-24
SLIDE 24

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Map overlay

Approach: plane sweep Need to define status, events, event handling Need status structure, event list, and DCEL for the output

Computational Geometry Lecture 2b: Subdivision representation and map overlay

24

slide-25
SLIDE 25

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Map overlay

Status: the edges of S1 and S2 intersecting the sweep line in the left-to-right order Events happen: At the vertices of S1 and S2 At intersection points from S1 and S2 The event list is basically the same as for line segment intersection

Computational Geometry Lecture 2b: Subdivision representation and map overlay

25

slide-26
SLIDE 26

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

Six types of events: A vertex of S1 A vertex of S2 An intersection point of one edge from S1 and one edge from S2 An edge of S1 goes through a vertex

  • f S2

An edge of S2 goes through a vertex

  • f S1

A vertex of S1 and a vertex of S2 coincide

Computational Geometry Lecture 2b: Subdivision representation and map overlay

26

slide-27
SLIDE 27

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

Consider the event: an intersection point of one edge from S1 and one edge from S2

geometry DCELs before DCEL after

Computational Geometry Lecture 2b: Subdivision representation and map overlay

27

slide-28
SLIDE 28

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

Consider the event: an edge from S1 goes through a vertex of S2

geometry DCELs before DCEL after

Computational Geometry Lecture 2b: Subdivision representation and map overlay

28

slide-29
SLIDE 29

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

Consider the event: a vertex of S1 and a vertex of S2 coincide

geometry DCELs before DCEL after

Computational Geometry Lecture 2b: Subdivision representation and map overlay

29

slide-30
SLIDE 30

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

When we take an event from the event queue Q, we need quick access to the DCEL to make the necessary changes We keep a pointer from each leaf in the status structure to

  • ne of the representing half-edges in the DCEL

Computational Geometry Lecture 2b: Subdivision representation and map overlay

30

slide-31
SLIDE 31

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay events

When we take an event from the event queue Q, we need quick access to the DCEL to make the necessary changes We keep a pointer from each leaf in the status structure to

  • ne of the representing half-edges in the DCEL

Computational Geometry Lecture 2b: Subdivision representation and map overlay

31

slide-32
SLIDE 32

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Overlay so far

The sweep algorithm gives us all vertices and half-edges of the

  • verlay, and pointers between these objects

Next we need face objects and their connection into the doubly-connected edge list structure Question: Which variables of vertex, edge, and face objects will we set in this process?

Computational Geometry Lecture 2b: Subdivision representation and map overlay

32

slide-33
SLIDE 33

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space Computational Geometry Lecture 2b: Subdivision representation and map overlay

33

slide-34
SLIDE 34

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space Computational Geometry Lecture 2b: Subdivision representation and map overlay

34

slide-35
SLIDE 35

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

Computational Geometry Lecture 2b: Subdivision representation and map overlay

35

slide-36
SLIDE 36

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Face information

Determine all cycles of half-edges, and whether they are inner or outer boundaries of the incident face Make a face object for each outer boundary, plus one for the unbounded face, and set the OuterComponent variable of each face. Set the IncidentFace variable for every half-edge in an outer boundary cycle

Computational Geometry Lecture 2b: Subdivision representation and map overlay

36

slide-37
SLIDE 37

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12

Computational Geometry Lecture 2b: Subdivision representation and map overlay

37

slide-38
SLIDE 38

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C6 → C2 C2 → C5 C1 → C3 → C10 → C1 C7 → C9

Computational Geometry Lecture 2b: Subdivision representation and map overlay

38

slide-39
SLIDE 39

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Face information

Determine the leftmost vertex of each inner boundary cycle For all of these leftmost vertices, determine the edge horizontally left of it, take the downward half-edge of it, and its cycle (by plane sweep) to set InnerComponents for all faces and IncidentFace for half-edges in inner boundary cycles

Computational Geometry Lecture 2b: Subdivision representation and map overlay

39

slide-40
SLIDE 40

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C6 → C2 C2 → C5 C1 → C3 → C10 → C1 C7 → C9 f5 f5: outer e5; inner e2, e6 e5 e2 e6

Computational Geometry Lecture 2b: Subdivision representation and map overlay

40

slide-41
SLIDE 41

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Efficiency

Every event takes O(logn) or O(m+logn) time to handle, where m is the sum of the degrees of any vertex from S1 and/or S2 involved The sum of the degrees of all vertices is exactly twice the number of edges in the output Theorem: Given two planar subdivisions S1 and S2, their

  • verlay can be computed in O(nlogn+klogn) time, where k

is the number of vertices of the overlay

Computational Geometry Lecture 2b: Subdivision representation and map overlay

41

slide-42
SLIDE 42

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Boolean operations on polygons

Boolean operations on two polygons with n vertices take O(nlogn+klogn) time, where k is the number of intersection points

intersection symmetric difference union difference

  • r

Computational Geometry Lecture 2b: Subdivision representation and map overlay

42

slide-43
SLIDE 43

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

Given a set of n points in the plane, and a side length s, compute an axis-parallel placement of a square S with side length s such that it contains the maximum number of points.

s S

Computational Geometry Lecture 2b: Subdivision representation and map overlay

43

slide-44
SLIDE 44

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

Given a set of n points in the plane, and a side length s, compute an axis-parallel placement of a square S with side length s such that it contains the maximum number of points.

s S

Computational Geometry Lecture 2b: Subdivision representation and map overlay

44

slide-45
SLIDE 45

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

The parts of a subdivision intersecting a fixed-size square when that square can be placed anywhere is the overlay of four copies of the subdivision and n copies of the square

Computational Geometry Lecture 2b: Subdivision representation and map overlay

45

slide-46
SLIDE 46

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

The parts of a subdivision intersecting a fixed-size square when that square can be placed anywhere is the overlay of four copies of the subdivision and n copies of the square

Computational Geometry Lecture 2b: Subdivision representation and map overlay

46

slide-47
SLIDE 47

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

The parts of a subdivision intersecting a fixed-size square when that square can be placed anywhere is the overlay of four copies of the subdivision and n copies of the square

Computational Geometry Lecture 2b: Subdivision representation and map overlay

47

slide-48
SLIDE 48

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Placement space of a square

The parts of a subdivision intersecting a fixed-size square when that square can be placed anywhere is the overlay of four copies of the subdivision and n copies of the square

Computational Geometry Lecture 2b: Subdivision representation and map overlay

48

slide-49
SLIDE 49

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space Computational Geometry Lecture 2b: Subdivision representation and map overlay

49

slide-50
SLIDE 50

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space Computational Geometry Lecture 2b: Subdivision representation and map overlay

50

slide-51
SLIDE 51

Motivation Doubly-connected edge list Map overlay Initialization Overlay algorithm Boolean operations, placement space

Summary

Computing the overlay of two subdivisions, or the placement space of a shape, is a basic operation needed in GIS To represent a planar subdivision, a doubly-connected edge list is a convenient data structure To design efficient geometric algorithms, the plane sweep technique is often a good choice

Computational Geometry Lecture 2b: Subdivision representation and map overlay

51