Computing Mitered Offset Curves Based on Straight Skeletons Peter - - PowerPoint PPT Presentation

computing mitered offset curves based on straight
SMART_READER_LITE
LIVE PREVIEW

Computing Mitered Offset Curves Based on Straight Skeletons Peter - - PowerPoint PPT Presentation

Computing Mitered Offset Curves Based on Straight Skeletons Peter Palfrader Martin Held Universitt Salzburg FB Computerwissenschaften Salzburg, Austria UNIVERSIT AT SALZBURG Computational Geometry and Applications Lab Straight Skeletons


slide-1
SLIDE 1

Computing Mitered Offset Curves Based on Straight Skeletons

Peter Palfrader Martin Held Universität Salzburg FB Computerwissenschaften Salzburg, Austria

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

slide-2
SLIDE 2

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995)

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-3
SLIDE 3

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-4
SLIDE 4

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-5
SLIDE 5

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-6
SLIDE 6

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-7
SLIDE 7

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-8
SLIDE 8

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-9
SLIDE 9

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-10
SLIDE 10

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-11
SLIDE 11

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-12
SLIDE 12

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeletons — Motivation

Aichholzer&Alberts&Aurenhammer&Gärtner (1995) Offsetting of input polygon P yields wavefront WF(P, t) for offset distance t. Wavefront propagation with unit speed via continued offsetting: shrinking process, where offset distance t equals time. Straight skeleton SK(P) is union of traces of wavefront vertices.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 2

slide-13
SLIDE 13

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Edge event Wavefront topology changes over time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 3

slide-14
SLIDE 14

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Edge event Wavefront topology changes over time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 3

slide-15
SLIDE 15

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Edge event Wavefront topology changes over time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 3

slide-16
SLIDE 16

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Edge event Wavefront topology changes over time. Edge event: an edge of WF(P, t) vanishes.

edge events

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 3

slide-17
SLIDE 17

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Edge event Wavefront topology changes over time. Edge event: an edge of WF(P, t) vanishes. Such a change of topology corresponds to a node of SK(P).

edge events

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 3

slide-18
SLIDE 18

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Split event Wavefront topology changes over time.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 4

slide-19
SLIDE 19

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Split event Wavefront topology changes over time. Split event: wavefront splits into two parts.

split event

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 4

slide-20
SLIDE 20

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Split event Wavefront topology changes over time. Split event: wavefront splits into two parts. Also split events correspond to nodes of SK(P).

split event

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 4

slide-21
SLIDE 21

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Change of Wavefront Topology

Split event Wavefront topology changes over time. Split event: wavefront splits into two parts. Also split events correspond to nodes of SK(P).

split event edge events

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 4

slide-22
SLIDE 22

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton

Definition The straight skeleton SK(P) of a polygon P is given by the union of traces of wavefront vertices of P over the entire wavefront propagation process.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 5

slide-23
SLIDE 23

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton

Definition The straight skeleton SK(P) of a polygon P is given by the union of traces of wavefront vertices of P over the entire wavefront propagation process. Basic facts The topology of the wavefront WF(P, t) changes with time/distance t due to edge and split events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 5

slide-24
SLIDE 24

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton

Definition The straight skeleton SK(P) of a polygon P is given by the union of traces of wavefront vertices of P over the entire wavefront propagation process. Basic facts The topology of the wavefront WF(P, t) changes with time/distance t due to edge and split events. These events correspond to nodes of SK(P).

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 5

slide-25
SLIDE 25

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton

Definition The straight skeleton SK(P) of a polygon P is given by the union of traces of wavefront vertices of P over the entire wavefront propagation process. Basic facts The topology of the wavefront WF(P, t) changes with time/distance t due to edge and split events. These events correspond to nodes of SK(P). No metric-based definition of straight skeletons exists.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 5

slide-26
SLIDE 26

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton

Definition The straight skeleton SK(P) of a polygon P is given by the union of traces of wavefront vertices of P over the entire wavefront propagation process. Basic facts The topology of the wavefront WF(P, t) changes with time/distance t due to edge and split events. These events correspond to nodes of SK(P). No metric-based definition of straight skeletons exists. If P has n segments then SK(P) consists of O(n) nodes and O(n) straight-line edges.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 5

slide-27
SLIDE 27

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Straight Skeleton of a PSLG

The definition of straight skeletons can be extended easily to arbitrary planar straight line graphs (PSLGs) within the entire plane, i.e., to a collection of straight-line segments that do not intersect except possibly at common endpoints.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 6

slide-28
SLIDE 28

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-29
SLIDE 29

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-30
SLIDE 30

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event?

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-31
SLIDE 31

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-32
SLIDE 32

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-33
SLIDE 33

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-34
SLIDE 34

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-35
SLIDE 35

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-36
SLIDE 36

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-37
SLIDE 37

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Computing Straight Skeletons

Basic idea Simulate the wavefront propagation. Problem: When will the next event happen? Which event? If we can solve this problem then we can construct straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 7

slide-38
SLIDE 38

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-39
SLIDE 39

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-40
SLIDE 40

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-41
SLIDE 41

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-42
SLIDE 42

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-43
SLIDE 43

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events. A triangle collapses when its area becomes zero.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-44
SLIDE 44

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events. A triangle collapses when its area becomes zero.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-45
SLIDE 45

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events. A triangle collapses when its area becomes zero.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-46
SLIDE 46

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Aichholzer&Aurenhammer (1998) Maintain a kinetic triangulation of (the interior of) the wavefront. Collapsing triangles witness edge and split events. A triangle collapses when its area becomes zero.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 8

slide-47
SLIDE 47

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-48
SLIDE 48

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events. Compute collapse times of triangles.

v e ∆

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-49
SLIDE 49

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events. Compute collapse times of triangles. That is, determine when the area of a triangle becomes zero.

v e ∆

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-50
SLIDE 50

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events. Compute collapse times of triangles. That is, determine when the area of a triangle becomes zero. Maintain a priority queue of collapse events.

v e ∆

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-51
SLIDE 51

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events. Compute collapse times of triangles. That is, determine when the area of a triangle becomes zero. Maintain a priority queue of collapse events. Update triangulation and priority queue as required upon events.

v e ∆

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-52
SLIDE 52

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-Based Algorithm

Collapsing triangles witness edge and split events. Compute collapse times of triangles. That is, determine when the area of a triangle becomes zero. Maintain a priority queue of collapse events. Update triangulation and priority queue as required upon events.

v e ∆

Algorithmic insight Wavefront propagation based on kinetic triangulations allows to determine all events and to compute straight skeletons.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 9

slide-53
SLIDE 53

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-54
SLIDE 54

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-55
SLIDE 55

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-56
SLIDE 56

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored!

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-57
SLIDE 57

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-58
SLIDE 58

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-59
SLIDE 59

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

flip event

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-60
SLIDE 60

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-61
SLIDE 61

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-62
SLIDE 62

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Triangulation-based Algorithm

Flip events Caveat: Not all collapses witness changes in the wavefront topology. Such collapses cannot be ignored! Rather these collapes need special processing: flip events.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 10

slide-63
SLIDE 63

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

How can we determine all offsets that correspond to some user-specified offset distance t?

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 11

slide-64
SLIDE 64

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

Standard approach

1

Compute an elementary offset segment for each input segment.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 12

slide-65
SLIDE 65

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

Standard approach

1

Compute an elementary offset segment for each input segment.

2

Trim at intersections of neighboring segments,

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 12

slide-66
SLIDE 66

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

Standard approach

1

Compute an elementary offset segment for each input segment.

2

Trim at intersections of neighboring segments, and close gaps to form one loop.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 12

slide-67
SLIDE 67

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

Standard approach

1

Compute an elementary offset segment for each input segment.

2

Trim at intersections of neighboring segments, and close gaps to form one loop.

3

Determine all self-intersections and split into several loops.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 12

slide-68
SLIDE 68

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting

Standard approach

1

Compute an elementary offset segment for each input segment.

2

Trim at intersections of neighboring segments, and close gaps to form one loop.

3

Determine all self-intersections and split into several loops.

4

Discard excess loops.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 12

slide-69
SLIDE 69

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-70
SLIDE 70

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Scan straight skeleton

1

Choose SK edge not yet intersected by an offset loop; compute start vertex.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-71
SLIDE 71

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Scan straight skeleton

1

Choose SK edge not yet intersected by an offset loop; compute start vertex.

2

Advance clockwise along boundary of SK face and compute next vertex.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-72
SLIDE 72

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Scan straight skeleton

1

Choose SK edge not yet intersected by an offset loop; compute start vertex.

2

Advance clockwise along boundary of SK face and compute next vertex.

3

Move to neighboring face and keep scanning that face clockwise.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-73
SLIDE 73

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Scan straight skeleton

1

Choose SK edge not yet intersected by an offset loop; compute start vertex.

2

Advance clockwise along boundary of SK face and compute next vertex.

3

Move to neighboring face and keep scanning that face clockwise.

4

Finish one offset curve.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-74
SLIDE 74

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Scan straight skeleton

1

Choose SK edge not yet intersected by an offset loop; compute start vertex.

2

Advance clockwise along boundary of SK face and compute next vertex.

3

Move to neighboring face and keep scanning that face clockwise.

4

Finish one offset curve. Continue with next offset curve.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 13

slide-75
SLIDE 75

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Offsetting Based on Straight Skeleton

Alternative: Halt wavefront Halt wavefront-propagation when the offset distance t is reached.

t

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 14

slide-76
SLIDE 76

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 15

slide-77
SLIDE 77

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation

Long way to go from the theoretical sketch of Aichholzer&Aurenhammer (1998) to an actual implementation . . .

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 15

slide-78
SLIDE 78

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation

Long way to go from the theoretical sketch of Aichholzer&Aurenhammer (1998) to an actual implementation . . . Need to avoid flip-event loops [Palfrader&Held&Huber (2012)].

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 15

slide-79
SLIDE 79

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation

Long way to go from the theoretical sketch of Aichholzer&Aurenhammer (1998) to an actual implementation . . . Need to avoid flip-event loops [Palfrader&Held&Huber (2012)]. Need to handle degeneracies that cause multiple simultaneous events [P .&H.]. Need to detect and classify simultaneous events reliably on a standard floating-point arithmetic [P .&H.].

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 15

slide-80
SLIDE 80

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation

Long way to go from the theoretical sketch of Aichholzer&Aurenhammer (1998) to an actual implementation . . . Need to avoid flip-event loops [Palfrader&Held&Huber (2012)]. Need to handle degeneracies that cause multiple simultaneous events [P .&H.]. Need to detect and classify simultaneous events reliably on a standard floating-point arithmetic [P .&H.]. SURFER Straight-skeleton algorithm, based on kinetic triangulations, implemented in C and named SURFER.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 15

slide-81
SLIDE 81

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation: Finding and Classifying Collapse Times

Different ways to compute collapse time Suppose that the three vertices of a triangle move towards one point.

v e ∆

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 16

slide-82
SLIDE 82

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation: Finding and Classifying Collapse Times

Different ways to compute collapse time Suppose that the three vertices of a triangle move towards one point. The parabola plotted in blue is the (signed) area of the triangle over time, e.g., as

  • btained by means of determinant computations.

v e ∆

∆ collapses

  • 1

1 2 2.5 3.0 t Area∆(t)

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 16

slide-83
SLIDE 83

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Implementation: Finding and Classifying Collapse Times

Different ways to compute collapse time Suppose that the three vertices of a triangle move towards one point. The parabola plotted in blue is the (signed) area of the triangle over time, e.g., as

  • btained by means of determinant computations.

The function in green represents the (signed) distance of one vertex to its

  • pposite edge.

v e ∆

∆ collapses

  • 1

1 2 2.5 3.0 t Area∆(t)

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 16

slide-84
SLIDE 84

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Several straight-skeleton codes: Felkel&Obdržálek (1998), Cacciola/CGAL (2004), Huber&Held (“BONE”, 2010).

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 17

slide-85
SLIDE 85

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Several straight-skeleton codes: Felkel&Obdržálek (1998), Cacciola/CGAL (2004), Huber&Held (“BONE”, 2010). SURFER is faster than BONE, which in turn is significantly faster than Cacciola’s CGAL code [Palfrader&Held&Huber (2012)].

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 17

slide-86
SLIDE 86

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Several straight-skeleton codes: Felkel&Obdržálek (1998), Cacciola/CGAL (2004), Huber&Held (“BONE”, 2010). SURFER is faster than BONE, which in turn is significantly faster than Cacciola’s CGAL code [Palfrader&Held&Huber (2012)]. No published/non-proprietary codes dedicated to mitered offsetting are known.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 17

slide-87
SLIDE 87

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Several straight-skeleton codes: Felkel&Obdržálek (1998), Cacciola/CGAL (2004), Huber&Held (“BONE”, 2010). SURFER is faster than BONE, which in turn is significantly faster than Cacciola’s CGAL code [Palfrader&Held&Huber (2012)]. No published/non-proprietary codes dedicated to mitered offsetting are known. CLIPPER and GEOS: Polygon-clipping libraries that apply general-purpose Boolean clipping algorithms to compute offsets.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 17

slide-88
SLIDE 88

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Simple closed polygons as test data. Input complexity n on x-axis, running time in seconds on y-axis. Computation of one offset CLIPPER, SURFER.

102 103 104 105 106 10−4 10−2 1 102

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 18

slide-89
SLIDE 89

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Simple closed polygons as test data. Input complexity n on x-axis, running time in seconds on y-axis. Computation of one offset CLIPPER, SURFER.

102 103 104 105 106 10−4 10−2 1 102

SK and SK-based offsetting Full SK by SURFER, One offset based on SK.

102 103 104 105 106 10−4 10−2 1 102

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 18

slide-90
SLIDE 90

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Experiments

Simple closed polygons as test data. Input complexity n on x-axis, running time in seconds on y-axis. Computation of one offset CLIPPER, SURFER.

102 103 104 105 106 10−4 10−2 1 102

SK and SK-based offsetting Full SK by SURFER, One offset based on SK.

102 103 104 105 106 10−4 10−2 1 102

Experimental result SURFER consumes roughly 5.8 · 10−7n log n microseconds for an n-segment input. Except for a few convex polygons, a full run of SURFER is always (substantially) faster than the computation of one offset by CLIPPER.

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 18

slide-91
SLIDE 91

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Comparison of Sample Offsets

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 19

slide-92
SLIDE 92

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Comparison of Sample Offsets

Voronoi diagram and rounded offsets

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 19

slide-93
SLIDE 93

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Comparison of Sample Offsets

Voronoi diagram and rounded offsets Straight skeleton and mitered offsets

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 19

slide-94
SLIDE 94

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Comparison of Sample Offsets

Voronoi diagram and rounded offsets Straight skeleton and mitered offsets Straight skeleton and beveled offsets

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 19

slide-95
SLIDE 95

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Comparison of Sample Offsets

Voronoi diagram and rounded offsets Linear axis and multi-segment bevels Straight skeleton and mitered offsets Straight skeleton and beveled offsets

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 19

slide-96
SLIDE 96

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Gallery

UNIVERSIT¨ AT SALZBURG Computational Geometry and Applications Lab

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 20

slide-97
SLIDE 97

Computational Geometry and Applications Lab UNIVERSIT¨ AT SALZBURG

Thanks for Your Attention — Questions Welcome!

1

Introduction Motivation Change of Wavefront Topology Definition of Straight Skeleton

2

Triangulation-Based Algorithm Basic Idea Kinetic Triangulation

3

Offsetting Standard Approach Offsetting Based on SK

4

Implementation

5

Experimental Results

6

Gallery

c

  • Martin Held (Univ. Salzburg)

Computing Mitered Offsets Based on Straight Skeletons (CAD’14) 21