4
$\begingroup$

For my problem I need to extract the lower convex hull of a set of 3D points (X,Y,Z). In Matlab, one can find the convex hull using the convhull function as follows: K = convhull(X,Y,Z).

Could anybody please suggest me a way to extract the lower hull from the convex hull? I found many references/code for 2D case but for 3D it seems to be not very popular (I'm new to computational geometry).

Thank you in advance for your help.

$\endgroup$
4
$\begingroup$

Every facet in a 3D convex hull has a normal vector. The key is to determine which facets have an outward normal vector pointing downward. You can determine this easily by looking at the z-component of each normal vector. If it is negative, it's part of the lower hull. If it's positive, it's part of the upper hull.

Of course, you'll have to decide whether or not to include with facets with zero z-components.

$\endgroup$
  • $\begingroup$ Hi Paul. Thanks so much for the great answer! :D $\endgroup$ – Khue Mar 19 '14 at 15:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.