- 71 Views
- Uploaded on
- Presentation posted in: General

A brief and sketchy intro to 3D Convex Hulls

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

A brief and sketchy intro to3D Convex Hulls

Rodrigo Silveira

GEOC 2010/11 - Q2

- 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

- 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

- Example
- Incidence graphs

- 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

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

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

- 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

- 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