VERT2CON - convert a set of points to the set of inequality constraints which most tightly contain the points; i.e., create constraints to bound the convex hull of the given points
[A,b] = vert2con(V)
V = a set of points, each ROW of which is one point
A,b = a set of constraints such that A*x <= b defines the region of space enclosing the convex hull of the given points
For n dimensions:
V = p x n matrix (p vertices, n dimensions)
A = m x n matrix (m constraints, n dimensions)
b = m x 1 vector (m constraints)
(1) In higher dimensions, redundant constraints can appear. This program detects redundancy at 6 digits of precision (per dimension), then returns the unique constraints.
(2) See companion function CON2VERT.
(3) ver 1.0: initial version, June 2005.
(4) ver 1.1: enhanced redundancy checks, July 2005
(5) Written by Michael Kleder
Made my life a lot easier. Thank you guys.
Nice program. How do I enforce constraints for points to lie only on the boundary of the convex hull?
Very useful for calculating 3-dimensional convex masks.
A few speedups for newer versions replacing REPMAT with BSXFUN:
V = bsxfun(@minus,V,c);
and in the example:
p = bsxfun(@le,A*p,b);
nice work..keep it up!
great program! and very elegantly coded as well.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.