on computing straight skeletons by means of kinetic
play

On Computing Straight Skeletons by Means of Kinetic Triangulations - PowerPoint PPT Presentation

On Computing Straight Skeletons by Means of Kinetic Triangulations Peter Palfrader Martin Held Stefan Huber University of Salzburg European Symposium on Algorithms 2012 Problem Given a planar, straight line graph, construct the straight


  1. On Computing Straight Skeletons by Means of Kinetic Triangulations Peter Palfrader Martin Held Stefan Huber University of Salzburg European Symposium on Algorithms 2012

  2. Problem Given a planar, straight line graph, construct the straight skeleton .

  3. Defining Straight Skeletons • Introduced by Aichholzer et al. in 1995. • A skeleton consisting exclusively of straight line segments. • Defined by a wavefront propagation process : The straight skeleton is the set of loci that are traced out by wavefront vertices.

  4. Defining Straight Skeletons • Introduced by Aichholzer et al. in 1995. • A skeleton consisting exclusively of straight line segments. • Defined by a wavefront propagation process : The straight skeleton is the set of loci that are traced out by wavefront vertices.

  5. Defining Straight Skeletons • Introduced by Aichholzer et al. in 1995. • A skeleton consisting exclusively of straight line segments. • Defined by a wavefront propagation process : The straight skeleton is the set of loci that are traced out by wavefront vertices.

  6. Wavefront propagation During this wavefront propagation, the wavefront topology changes: • Split events: a wavefront vertex crashes into an oncoming wavefront edge. • Edge events: a wavefront edge vanishes.

  7. Defining Straight Skeletons Extend from simple polygons to planar straight line graphs:

  8. Defining Straight Skeletons Extend from simple polygons to planar straight line graphs:

  9. Applications ✂ Tool path generation Roof construction Cut-and-fold and more . . .

  10. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  11. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  12. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  13. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  14. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  15. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  16. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  17. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  18. Triangulation based Construction • Keep a triangulation of the area not yet swept over by the wavefront [Aichholzer, Aurenhammer 1998] . • Edge and Split events are witnessed by collapsing triangles ⇒ Priority Queue.

  19. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  20. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  21. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  22. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  23. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  24. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  25. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  26. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  27. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  28. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  29. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  30. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  31. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  32. Flip events • Not all collapsing triangles result in a change of the wavefront. • These cases need special handling nevertheless. They are flip events .

  33. Our contribution • We have implemented this algorithm, filling in a few gaps in the algorithm, including issues that arise from not assuming general position. • We have run extensive tests using this code, more on that in a bit.

  34. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters.

  35. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters.

  36. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters.

  37. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters. • We need to update the triangulation at some point before this happens, but how?

  38. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters. • We need to update the triangulation at some point before this happens, but how?

  39. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters. • We need to update the triangulation at some point before this happens, but how?

  40. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters. • We need to update the triangulation at some point before this happens, but how?

  41. Triangulating the input • Triangulate the convex hull. • Unfortuantely the convex hull changes with time, and it matters. • We need to update the triangulation at some point before this happens, but how?

  42. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts.

  43. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts.

  44. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts.

  45. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts.

  46. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts.

  47. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts. • But what if these edges are parallel?

  48. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts. • But what if these edges are parallel?

  49. Infinitely fast moving vertices • During an edge event, two wavefront vertices collide and a new moving vertex gets launched. • Its direction and speed is dictated by the incident wavefronts. • But what if these edges are parallel?

Recommend


More recommend