A brief and sketchy intro to 3D Convex Hulls
This document provides a concise introduction to the concept of 3D convex hulls, detailing their significance in computational geometry. It explores how convex hulls of a set of points in three dimensions can be visualized as polytopes, highlighting the differences and complexities from 2D cases. The incremental algorithm for computing the convex hull is discussed, emphasizing the importance of the horizon method in identifying visible facets. With theoretical insights into performance and complexity, this introduction serves as a foundational overview for further study in geometric computations.
A brief and sketchy intro to 3D Convex Hulls
E N D
Presentation Transcript
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