90 likes | 217 Views
A brief and sketchy intro to 3D Convex Hulls. Rodrigo Silveira GEOC 2010/11 - Q2. 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
E N D
A brief and sketchy intro to3D Convex Hulls Rodrigo Silveira GEOC 2010/11 - Q2
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
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
Representation • Example • Incidence graphs
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
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
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})
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
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