9
A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

Embed Size (px)

Citation preview

Page 1: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

A brief and sketchy intro to3D Convex Hulls

Rodrigo SilveiraGEOC 2010/11 - Q2

Page 2: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

2

Convex hulls in 3D

• CH of set of points in 3D: (convex) polytope

• 2D: CH of n points….– at most n vertices – at most n edges

• In 3D it is a bit different– at most n vertices– at most 3n-6 edges– at most 2n-4 facets

Page 3: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

3

Representation

• 2D: CH is a polygon– Easy to store and maintain: vertex array/list

• 3D: Polytope– More than a list of vertices!– Graph of facets, edges, and vertices

Page 4: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

4

Representation

• Example– Incidence graphs

Page 5: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

5

Incremental algorithm

• Same principle than in 2D– Initialize CH to CH of the first (3+1)=4 points– Incremental step

• Take next point, p, and insert it• Trick: treat points in order by x-coordinate

– Then the next point is always outside previous CH– Also works in 2D!

• Compute CH(Pi U {p})

• Degeneracy assumption: no 4 points are coplanar

Page 6: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

6

Computing CH(Pi U {p})

• 2D: we add p and 2 edges incident to p• 3D: we add p and many facets incident to p

Page 7: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

7

The key is in the horizon

• Horizon: separates visible from non-visible facets• Visible facets should be removed• Non-visible facets stay in CH(Pi U {p})

Page 8: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

8

How to compute them (sketch)• Recall points are treated in order• The previously inserted point, q,

must be in CH(Pi)• And must be visible from p• Start walking on the facets from q

– Depth first search• Test each facet to be

always on visible part• Take note of boundary• Connect boundary to p• Update graph: delete visible facets,

create new vertex, edges, facets

Page 9: A brief and sketchy intro to 3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2

9

Summary

• This incremental algorithm– In principle, takes time O(n2)– Can be generalized to d dimensions• Time O(n log n + n^floor((d+1)/2)

• Can be adapted to work in expected O(n log n) time