Straight Skeleton Computational Geometry and Geometric Computing - - PowerPoint PPT Presentation

straight skeleton
SMART_READER_LITE
LIVE PREVIEW

Straight Skeleton Computational Geometry and Geometric Computing - - PowerPoint PPT Presentation

Straight Skeleton Computational Geometry and Geometric Computing Seminar Lavinia Dinu Supervisor: Eric Berberich How to fit a roof to these walls? [SSA] Walls and fitted roof Outline Definitions and Basic Properties A Simple Algorithm


slide-1
SLIDE 1

Computational Geometry and Geometric Computing Seminar Lavinia Dinu

Straight Skeleton

Supervisor: Eric Berberich

slide-2
SLIDE 2

How to fit a roof to these walls?

[SSA] Walls and fitted roof

slide-3
SLIDE 3

Outline

 Definitions and Basic Properties  A Simple Algorithm  Algorithm for Polygons  Applications

 Fold and Cut Problem  Roof Design

slide-4
SLIDE 4

Definitions

slide-5
SLIDE 5

Planar Straight Line Graph

 Embedding of a planar graph in the plane  Edges mapped to straight line segments  No self-intersections

 Figures - connected components

 Terminals - vertices of degree one  Try it yourself: www.planarity.net

[Wiki] A planar straight line graph

slide-6
SLIDE 6

Skeleton

 Partition of plane into regions  Reflects the geometric shape of the graph  Arcs and nodes  Medial axis – non-linear

 Points that have more than one closest point on the boundary

[Wiki] Medial axis of a polygon

slide-7
SLIDE 7

Straight Skeleton: Wavefronts

 Generate wavefronts  Vertices move on angular bisectors  Propagate wavefronts simultaneously

[SSG] Polygonal figures and initial wavefronts in red

slide-8
SLIDE 8

Straight Skeleton: Events

 Edge event

 Edge length decreases to zero

 Split event

 Wavefront edge splits due to interference

slide-9
SLIDE 9

Straight Skeleton: Definition

slide-10
SLIDE 10

Straight Skeleton: Example

[SAS] Blue wavefronts and red skeleton of a polygon

slide-11
SLIDE 11

Straight Skeleton: Example

[SSG] Red straight skeleton of graph

slide-12
SLIDE 12

Properties

slide-13
SLIDE 13

Basic Algorithm

slide-14
SLIDE 14

Idea

slide-15
SLIDE 15

Initial triangulation

slide-16
SLIDE 16

Initial triangulation

Triangulation of the graph (up) and triangulation of the initial wavefronts (down) for two figures. Blue edges represent spokes, red edges wavefronts.

slide-17
SLIDE 17

Flip Event

[SAS] Flip Event

slide-18
SLIDE 18

Edge Event

[SAS] Edge Event

slide-19
SLIDE 19

Split Event

[SAS] Split Event

slide-20
SLIDE 20

Complexity analysis

slide-21
SLIDE 21

A Better Algorithm

slide-22
SLIDE 22

Input

 Simple non-degenerate polygon  Can have holes  Interior polygon will have the opposite orientation

[SSI] Polygon with hole

slide-23
SLIDE 23

Idea & Data Structures

 Simulate the progression of the wavefronts  Use set of circular lists of active vertices – SLAV

 Each LAV – loop of vertices of a wavefront  Each vertex

 References to both neighbors  References to adjacent edges in the original polygon

 Doubly connected circular list of active vertices

 Priority queue

 events

slide-24
SLIDE 24

Convex Polygons: Initialization

 Store all vertices in one LAV  For each vertex

 Add reference to the two incident edges  Compute the angle bisector

 Compute nearer intersection of bisector with adjacent ones

 Add to priority queue  Sort by distance to the corresponding edge  Add reference to the corresponding vertices  Can be duplicities among the intersection points

slide-25
SLIDE 25

Convex Polygons: Initialization

[SSI] Initialization

slide-26
SLIDE 26

Convex Polygons – Loop Part 1

slide-27
SLIDE 27

Convex Polygons – Loop Part 2

slide-28
SLIDE 28

Convex Polygons – Loop Part 3

[SSI] First Step

slide-29
SLIDE 29

Non-convex Polygons

 Add event type attribute

 Edge event or split event

 Reflex vertices can cause both types of events

[SSI] Reflex vertices causing edge event A and split event B

slide-30
SLIDE 30

Determine split events

[SSI] Split event and feasible area

slide-31
SLIDE 31

Processing split events

[SSI] Updating the LAVs

slide-32
SLIDE 32

Complexity Analysis

slide-33
SLIDE 33

Applications

slide-34
SLIDE 34

Applications

 Decomposition of concave polygons into convex regions

 Preprocessing step for shape matching, Minkovski sum

 Interpolating polygonal curves  Fold and cut problem  Roof design  Terrain reconstruction

slide-35
SLIDE 35

Fold and Cut Problem

 Fold a piece of paper and cut along a line  Any possible shape can be obtained  Creases are:

 The straight skeleton  Perpendicular lines to the given shape reflected at the skeleton

 [PR] Applet to generate the folds

slide-36
SLIDE 36

Fold and Cut Problem

[FC] Fold Pattern for a figure

slide-37
SLIDE 37

Roof Design: Hip Roof

 All facets have the same slope  Algorithm:

 Construct straight skeleton  Determine distance of each vertex from supporting edge  Determine roof planes  Raise vertices accordingly

 Can be adapted for different slopes

 Change propagation speed of wavefronts

slide-38
SLIDE 38

Roof Design: Hip Roof

[AGF] Steps for creating a hip roof

slide-39
SLIDE 39

Roof Design: Gable Roof

 Has an small gable on top  Algorithm

 Find a vertex created by

bisectors from the original polygon

 Move it to the midpoint of the

supporting edge

[Wiki] Gable roof [AGF] Creating a gable roof

slide-40
SLIDE 40

Summary

slide-41
SLIDE 41

Sources

 [SSG] O. Aichholzer, F. Aurenhammer. Straight Skeleton for General

Polygonal Figures in the Plane

 [ANT] O. Aichholzer, F. Aurenhammer, D. Alberts, B.Gaertner. A Novel

Type of Skeleton for Polygons

 [SSI] P

. Felkel, S. Obdrzalek. Straight Skeleton Implementation

 [AGF] R. G. Laycock, A. M. Day. Automatically Generating Roof Models

from Building Footprints

 [SAS] D. Eppstein. A Subquadratic Algorithm for the Straight Skeleton  [FC] http://erikdemaine.org/foldcut/  [PR]

http://cgm.cs.mcgill.ca/~athens/cs507/Projects/2003/EricBiunno/

 [Wiki]Wikipedia

slide-42
SLIDE 42

Thank you for your attention!

Questions?