Skeleton Structures in Computational Geometry An introduction with - - PowerPoint PPT Presentation

skeleton structures in computational geometry
SMART_READER_LITE
LIVE PREVIEW

Skeleton Structures in Computational Geometry An introduction with - - PowerPoint PPT Presentation

Skeleton Structures in Computational Geometry An introduction with GIS in mind Stefan Huber January 7, 2013 Stefan Huber: Skeleton Structures in Computational Geometry 1 of 25 Motivation Is there a path for the vehicle V from p to q within


slide-1
SLIDE 1

Skeleton Structures in Computational Geometry

An introduction with GIS in mind

Stefan Huber

January 7, 2013

Stefan Huber: Skeleton Structures in Computational Geometry 1 of 25

slide-2
SLIDE 2

Motivation

Is there a path for the vehicle V from p to q within the polygon with holes, P?

V p q P

Stefan Huber: Skeleton Structures in Computational Geometry 2 of 25

slide-3
SLIDE 3

Motivation

Is there a path for the vehicle V from p to q within the polygon with holes, P?

V p q P

◮ We would like to have a geometric structure that

◮ lets us easily identify “bottlenecks” of P and Stefan Huber: Skeleton Structures in Computational Geometry 2 of 25

slide-4
SLIDE 4

Motivation

Is there a path for the vehicle V from p to q within the polygon with holes, P?

P

◮ We would like to have a geometric structure that

◮ lets us easily identify “bottlenecks” of P and ◮ allows us to reuse known path-finding algorithms (on graphs). Stefan Huber: Skeleton Structures in Computational Geometry 2 of 25

slide-5
SLIDE 5

Motivation

Is there a path for the vehicle V from p to q within the polygon with holes, P?

P

◮ We would like to have a geometric structure that

◮ lets us easily identify “bottlenecks” of P and ◮ allows us to reuse known path-finding algorithms (on graphs).

◮ For short: we need information about the shape of P.

◮ Skeleton structures can do that. Stefan Huber: Skeleton Structures in Computational Geometry 2 of 25

slide-6
SLIDE 6

Generalized Voronoi diagrams

The Voronoi diagram of points in the Euclidean plane has been generalized in multiple ways:

◮ plane → higher dimensions ◮ points → straight-line segments, circular arcs, . . . ◮ Euclidean → Lk-norms, convex distance functions, . . .

In this talk: Voronoi diagram of points, straight-line segments and circular arcs in the Euclidean plane.

Stefan Huber: Skeleton Structures in Computational Geometry 3 of 25

slide-7
SLIDE 7

Generalized Voronoi diagrams

Given: set S of input sites, i.e., points, straight-line segments, circular arcs, not intersecting in their relative interior.

◮ Plane tessellated into cells around input sites.

◮ Points within the cell of site i are closer to i than to all other sites. ◮ Bisectors are parabolic/elliptic arcs.

◮ V(S) is the Voronoi diagram of S. That is, V(S) consists of the boundaries

  • f all cells.

Stefan Huber: Skeleton Structures in Computational Geometry 4 of 25

slide-8
SLIDE 8

Generalized Voronoi diagrams: details

What if sites touch?

Any point in the shaded area is equidistant to both segments.

Stefan Huber: Skeleton Structures in Computational Geometry 5 of 25

slide-9
SLIDE 9

Generalized Voronoi diagrams: details

What if sites touch?

◮ Endpoints of segments and arcs are input sites, too. ◮ Voronoi cell of a site is restricted to “cone of influence”.

Stefan Huber: Skeleton Structures in Computational Geometry 5 of 25

slide-10
SLIDE 10

Generalized Voronoi diagrams: details

What if sites touch?

◮ Endpoints of segments and arcs are input sites, too. ◮ Voronoi cell of a site is restricted to “cone of influence”.

node edge face

Precise definition in [Held and Huber, 2009].

Stefan Huber: Skeleton Structures in Computational Geometry 5 of 25

slide-11
SLIDE 11

Voronoi diagram of a shape

We are given a simple polygon P.

◮ P consists of vertices and edges → take them as the set S of input sites. ◮ Short-hand notation: V(P) is the resulting Voronoi diagram, i.e., V(S).

◮ P is tessellated into Voronoi cells. Stefan Huber: Skeleton Structures in Computational Geometry 6 of 25

slide-12
SLIDE 12

Voronoi diagram of a shape

We are given a simple polygon P.

◮ P consists of vertices and edges → take them as the set S of input sites. ◮ Short-hand notation: V(P) is the resulting Voronoi diagram, i.e., V(S).

◮ P is tessellated into Voronoi cells. ◮ Sometimes V(P) is considered to be restricted to P. Stefan Huber: Skeleton Structures in Computational Geometry 6 of 25

slide-13
SLIDE 13

Voronoi diagram of a shape

We are given a simple polygon P.

◮ P consists of vertices and edges → take them as the set S of input sites. ◮ Short-hand notation: V(P) is the resulting Voronoi diagram, i.e., V(S).

◮ P is tessellated into Voronoi cells. ◮ Sometimes V(P) is considered to be restricted to P. ◮ Sometimes, P may have holes and its boundary may also comprise circular

arcs.

Stefan Huber: Skeleton Structures in Computational Geometry 6 of 25

slide-14
SLIDE 14

Finding bottlenecks of shapes

◮ The clearance disk C(p) is the largest disk within P centered at the point p.

◮ Its radius is the clearance radius.

p C(p)

Stefan Huber: Skeleton Structures in Computational Geometry 7 of 25

slide-15
SLIDE 15

Finding bottlenecks of shapes

◮ The clearance disk C(p) is the largest disk within P centered at the point p.

◮ Its radius is the clearance radius.

◮ Bottleneck: a Voronoi node with locally minimal clearance radius.

Stefan Huber: Skeleton Structures in Computational Geometry 7 of 25

slide-16
SLIDE 16

Finding bottlenecks of shapes

◮ The clearance disk C(p) is the largest disk within P centered at the point p.

◮ Its radius is the clearance radius.

◮ Bottleneck: a Voronoi node with locally minimal clearance radius.

Stefan Huber: Skeleton Structures in Computational Geometry 7 of 25

slide-17
SLIDE 17

Collision-free paths

Can we move V form p to q within P?

p q V

Stefan Huber: Skeleton Structures in Computational Geometry 8 of 25

slide-18
SLIDE 18

Collision-free paths

Can we move V form p to q within P?

◮ Compute V(P). Consider the bottlenecks, whose clearance disk is smaller

than V , removed.

p q V

Stefan Huber: Skeleton Structures in Computational Geometry 8 of 25

slide-19
SLIDE 19

Collision-free paths

Can we move V form p to q within P?

◮ Compute V(P). Consider the bottlenecks, whose clearance disk is smaller

than V , removed.

◮ Project p resp. q to points p′ resp. q′ on Voronoi edges.

p q V

Stefan Huber: Skeleton Structures in Computational Geometry 8 of 25

slide-20
SLIDE 20

Collision-free paths

Can we move V form p to q within P?

◮ Compute V(P). Consider the bottlenecks, whose clearance disk is smaller

than V , removed.

◮ Project p resp. q to points p′ resp. q′ on Voronoi edges. ◮ Find a path from p′ to q′ on V(P) using ordinary graph algorithms.

p q V

Stefan Huber: Skeleton Structures in Computational Geometry 8 of 25

slide-21
SLIDE 21

Medial axis

We are given a shape P.

◮ The medial axis M(P) consists of those points p within P whose minimum

distance to the boundary of P is assumed at two or more boundary points.

◮ That is, the clearance disk at p touches P at two or more points. ◮ Hence, M(P) ⊆ V(P).

◮ M(P) is easily extracted from V(P). Stefan Huber: Skeleton Structures in Computational Geometry 9 of 25

slide-22
SLIDE 22

Medial axis

We are given a shape P.

◮ The medial axis M(P) consists of those points p within P whose minimum

distance to the boundary of P is assumed at two or more boundary points.

◮ That is, the clearance disk at p touches P at two or more points. ◮ Hence, M(P) ⊆ V(P).

◮ M(P) is easily extracted from V(P). Stefan Huber: Skeleton Structures in Computational Geometry 9 of 25

slide-23
SLIDE 23

Maximum inscribed circle

What is the largest disk we can place in a shape P?

◮ Kind of complementary problem to bottleneck detection.

Algorithm:

Stefan Huber: Skeleton Structures in Computational Geometry 10 of 25

slide-24
SLIDE 24

Maximum inscribed circle

What is the largest disk we can place in a shape P?

◮ Kind of complementary problem to bottleneck detection.

Algorithm:

◮ Take the Voronoi node with largest clearance radius.

Stefan Huber: Skeleton Structures in Computational Geometry 10 of 25

slide-25
SLIDE 25

Reconstruction property, topological view

P equals the union of all clearance disks placed on M(P).

◮ M(P) and the clearance radius function r(.) on M(P) can together

reconstruct P.

◮ Besides “thickness”, M(P) contains the essential information of the “shape”

  • f P.

◮ For instance, holes in P correspond to cycles in M(P).

r(p) p

Stefan Huber: Skeleton Structures in Computational Geometry 11 of 25

slide-26
SLIDE 26

Reconstruction property, topological view

We are given networks of rivers by their polygonal shapes.

◮ How to find the center-lines of the rivers? ◮ How to find the main branches? ◮ How to prune small creeks? ◮ Which river is connected with which? ◮ How to remove details from a map, i.e., collapse small rivers or streets to a

line?

Stefan Huber: Skeleton Structures in Computational Geometry 12 of 25

slide-27
SLIDE 27

Minkowski-sum and Minkowski-difference

The Minkowski-sum A ⊕ B of two sets A and B is the union of all B moved by a vector v ∈ A. Note that B ⊕ A = A ⊕ B. The Minkowski-difference A ⊖ B of two sets A and B is the largest set such that its Minkowski-sum with B is contained in A.

B A ⊕ B A A ⊖ B B

Stefan Huber: Skeleton Structures in Computational Geometry 13 of 25

slide-28
SLIDE 28

Offsetting

Let Dr denote the disk with radius r and the origin as center.

◮ How to compute all points inside/outside of P that have a distance of exactly

(or at most) r? That is, how to compute P ⊕ Dr resp. P ⊖ Dr?

Stefan Huber: Skeleton Structures in Computational Geometry 14 of 25

slide-29
SLIDE 29

Offsetting

Let Dr denote the disk with radius r and the origin as center.

◮ How to compute all points inside/outside of P that have a distance of exactly

(or at most) r? That is, how to compute P ⊕ Dr resp. P ⊖ Dr?

Stefan Huber: Skeleton Structures in Computational Geometry 14 of 25

slide-30
SLIDE 30

Offsetting

Let Dr denote the disk with radius r and the origin as center.

◮ How to compute all points inside/outside of P that have a distance of exactly

(or at most) r? That is, how to compute P ⊕ Dr resp. P ⊖ Dr?

Stefan Huber: Skeleton Structures in Computational Geometry 14 of 25

slide-31
SLIDE 31

Offsetting

Collision-free paths: Note that there is a collision-free path for V from p to q if there is any path from p to q within P ⊖ V .

Stefan Huber: Skeleton Structures in Computational Geometry 15 of 25

slide-32
SLIDE 32

Offsetting

Collision-free paths: Note that there is a collision-free path for V from p to q if there is any path from p to q within P ⊖ V . Offsets have many more applications: computing tolerance zones, tool-paths in NC-machining, buffering in maps, thinning or extruding shapes, . . .

Stefan Huber: Skeleton Structures in Computational Geometry 15 of 25

slide-33
SLIDE 33

Straight skeletons: Definition

◮ The Voronoi diagram of a simple polygon P can be characterized by means

  • f interference patterns of offset segments → wavefront propagation.

Stefan Huber: Skeleton Structures in Computational Geometry 16 of 25

slide-34
SLIDE 34

Straight skeletons: Definition

Suppose that we do not like circular arcs in the offset curves.

◮ Replace circular arcs by straight-line caps. ◮ Each wavefront edge is parallel to an edge of P and moves with equal speed.

(a) Voronoi diagram (b) straight skeleton

◮ The straight skeleton is defined by interference patterns of “mitered-offset

curves”.

Stefan Huber: Skeleton Structures in Computational Geometry 17 of 25

slide-35
SLIDE 35

Straight skeletons: Definition

◮ Topological changes (events) during the wavefront propagation:

◮ Edge event: a wavefront edge shrinks to zero length. ◮ Split event: a reflex wavefront vertex splits another wavefront edge.

split event edge event

Stefan Huber: Skeleton Structures in Computational Geometry 18 of 25

slide-36
SLIDE 36

Straight skeletons: Definition

◮ Topological changes (events) during the wavefront propagation:

◮ Edge event: a wavefront edge shrinks to zero length. ◮ Split event: a reflex wavefront vertex splits another wavefront edge.

split event edge event

◮ Straight skeleton S(P): set of loci of all wavefront vertices.

Stefan Huber: Skeleton Structures in Computational Geometry 18 of 25

slide-37
SLIDE 37

Straight skeletons: Definition

◮ Topological changes (events) during the wavefront propagation:

◮ Edge event: a wavefront edge shrinks to zero length. ◮ Split event: a reflex wavefront vertex splits another wavefront edge.

split event edge event node face f (e) e arc

◮ Straight skeleton S(P): set of loci of all wavefront vertices.

◮ Each node of S(P) is the locus of an event. ◮ Each arc is on the bisector of polygon edges. ◮ Each face is swept out by the wavefront edge emanated by an input edge. Stefan Huber: Skeleton Structures in Computational Geometry 18 of 25

slide-38
SLIDE 38

Straight skeleton of a PSLG

◮ PSLG: planar straight-line graph, i.e., a bunch of straight-line segments that

do not intersect in their relative interior.

◮ [Aichholzer and Aurenhammer, 1998]: straight skeleton S(G) of a PSLG G

◮ Each input edge sends out two parallel wavefront copies. ◮ Each terminal vertex sends out an additional wavefront edge. Stefan Huber: Skeleton Structures in Computational Geometry 19 of 25

slide-39
SLIDE 39

Straight skeleton of a PSLG

◮ PSLG: planar straight-line graph, i.e., a bunch of straight-line segments that

do not intersect in their relative interior.

◮ [Aichholzer and Aurenhammer, 1998]: straight skeleton S(G) of a PSLG G

◮ Each input edge sends out two parallel wavefront copies. ◮ Each terminal vertex sends out an additional wavefront edge. Stefan Huber: Skeleton Structures in Computational Geometry 19 of 25

slide-40
SLIDE 40

Straight skeleton of a PSLG

◮ PSLG: planar straight-line graph, i.e., a bunch of straight-line segments that

do not intersect in their relative interior.

◮ [Aichholzer and Aurenhammer, 1998]: straight skeleton S(G) of a PSLG G

◮ Each input edge sends out two parallel wavefront copies. ◮ Each terminal vertex sends out an additional wavefront edge. Stefan Huber: Skeleton Structures in Computational Geometry 19 of 25

slide-41
SLIDE 41

Straight skeletons: the terrain model

◮ Consider the wavefront propagation in three-dimensional space-time, with the

z-axis representing time.

◮ An isoline of the resulting T (G) corresponds to the wavefront at some point

in time.

◮ Projecting the valleys and ridges onto R2 gives us S(G) again.

◮ Knowing T (G) is equivalent to knowing S(G).

valley ridge

Stefan Huber: Skeleton Structures in Computational Geometry 20 of 25

slide-42
SLIDE 42

Area collapsing

◮ Let us consider a map with a river given as a polygonal area. ◮ How to reduce the level of detail by collapsing the river’s area to a line? ◮ [Haunert and Sester, 2008]:

◮ Compute S(P)1, which tessellates P into faces. ◮ To each edge e of P belongs a face f (e) and each edge e also belongs to a

neighboring polygon Q.

◮ Add f (e) to Q.

Q e lake

1Actually, weighted straight skeletons are employed.

Stefan Huber: Skeleton Structures in Computational Geometry 21 of 25

slide-43
SLIDE 43

Centerlines of roads

Similar problem to area collapsing:

◮ Let us consider a map with a road network where roads are given by

polygonal areas.

◮ [Haunert and Sester, 2008]: compute centerlines of roads resp. extract the

corresponding network graph using straight skeletons.

Stefan Huber: Skeleton Structures in Computational Geometry 22 of 25

slide-44
SLIDE 44

Centerlines of roads

Similar problem to area collapsing:

◮ Let us consider a map with a road network where roads are given by

polygonal areas.

◮ [Haunert and Sester, 2008]: compute centerlines of roads resp. extract the

corresponding network graph using straight skeletons.

Stefan Huber: Skeleton Structures in Computational Geometry 22 of 25

slide-45
SLIDE 45

Centerlines of roads

Similar problem to area collapsing:

◮ Let us consider a map with a road network where roads are given by

polygonal areas.

◮ [Haunert and Sester, 2008]: compute centerlines of roads resp. extract the

corresponding network graph using straight skeletons.

Stefan Huber: Skeleton Structures in Computational Geometry 22 of 25

slide-46
SLIDE 46

Roof construction

◮ We are given the footprint of a house as a polygon P and want to design a

so-called hip roof for it.

◮ All faces have the same slope. ◮ There are no local minima within P, where rain accumulates. ◮ [Aichholzer et al., 1995]: the terrain model gives us a solution.

◮ [Laycock and Day, 2003]: use heuristics to generate gable roofs, mansard

roofs, gambrel roofs, and Dutch roofs.

Stefan Huber: Skeleton Structures in Computational Geometry 23 of 25

slide-47
SLIDE 47

Terrain modeling

Similar problem to roof construction:

◮ We are given a river or a lake and want to model a mountain terrain in its

neighborhood.

◮ [Aichholzer and Aurenhammer, 1998]: use the straight skeleton.

Figure : Left: terrain generated by Bone. Right: Actual photo from de.wikipedia.org, CC BY-SA 3.0 license, originator: Techcollector

Stefan Huber: Skeleton Structures in Computational Geometry 24 of 25

slide-48
SLIDE 48

Stefan Huber: Skeleton Structures in Computational Geometry 25 of 25

slide-49
SLIDE 49

Bibliography I

Aichholzer, O., Alberts, D., Aurenhammer, F., and G¨ artner, B. (1995). A novel type of skeleton for polygons.

  • J. Universal Comp. Sci., 1(12):752–761.

Aichholzer, O. and Aurenhammer, F. (1998). Straight skeletons for general polygonal figures in the plane. In Samoilenko, A., editor, Voronoi’s Impact on Modern Science, Book 2, pages 7–21. Institute of Mathematics of the National Academy of Sciences of Ukraine, Kiev, Ukraine. Haunert, J.-H. and Sester, M. (2008). Area collapse and road centerlines based on straight skeletons. GeoInformatica, 12:169–191. Held, M. and Huber, S. (2009). Topology-oriented incremental computation of Voronoi diagrams of circular arcs and straight-line segments.

  • Comp. Aided Design, 41(5):327–338.

Stefan Huber: Skeleton Structures in Computational Geometry 26 of 25

slide-50
SLIDE 50

Bibliography II

Laycock, R. G. and Day, A. M. (2003). Automatically generating large urban environments based on the footprint data of buildings. In Proc. 8thACM Symp. on Solid Mod. & Appl. (SM ’03), pages 346–351, Seattle, Washington, USA.

Stefan Huber: Skeleton Structures in Computational Geometry 27 of 25