[comp.graphics] convex hull routines needed

fishkin@pixar.UUCP (Ken Fishkin) (04/07/88)

    Does any kind soul have code for finding the convex hull of an
arbitrary set of 3-D points, preferably in O(NlogN) time?

		thanks,
Ken Fishkin	...{ucbvax,sun}!pixar!fishkin
-- 
Ken Fishkin	..ucbvax!pixar!fishkin

spencer@spline.eecs.umich.edu (Spencer W. Thomas) (04/07/88)

In article <1704@pixar.UUCP> fishkin@pixar.UUCP (Ken Fishkin) writes:
>
>    Does any kind soul have code for finding the convex hull of an
>arbitrary set of 3-D points, preferably in O(NlogN) time?
>

Preparata & Shamos ("Computational Geometry", Springer-Verlag, 1985),
give an NlogN algorithm for 3-D convex hull, if you have all the
points ahead of time.  If you are given one point at a time, and wish
to compute the convex hull incrementally ("on-line" is their term),
the best you can do is N^2.


=Spencer (spencer@crim.eecs.umich.edu)

rmf@actnyc.UUCP (Robert M. Fuhrer) (04/13/88)

In article <818@zippy.eecs.umich.edu> spencer@spline.eecs.umich.edu (Spencer W. Thomas) writes:
>
>points ahead of time.  If you are given one point at a time, and wish
>to compute the convex hull incrementally ("on-line" is their term),
>the best you can do is N^2.
>
>=Spencer (spencer@crim.eecs.umich.edu)

In fact, there is an on-line (incremental) O(n*log n) algorithm for computing
convex hulls.  I refer you to the July 1979 issue of Communications of the ACM.

In it, F. P. Preparata describes the use of a height-balanced tree which
orders the points by their polar angles with respect to some internal point.
The (n+1)th point is then located between two successive points (wrt angle),
and categorized according to whether it lies within the hull from the previous
iteration.  If outside, two points in the previous hull (not necessarily
consecutive) are found which, together with the new point, form part of the
boundary of the new hull.  The probes into the ith set of points (with i
members) representing the ith hull, being all O(log i), yield an O(n*log n)
algorithm when n iterations are applied to a set of n points.
-- 
The Foundation for Unmitigated Sillyness		uunet!actnyc!rmf
Department of Redundancy Department
City of Kansas City, Kansas