Re: Convex hull iin 3-D, anyone?
- To: mathgroup at smc.vnet.net
- Subject: [mg84831] Re: Convex hull iin 3-D, anyone?
- From: Valeri Astanoff <astanoff at gmail.com>
- Date: Wed, 16 Jan 2008 03:25:26 -0500 (EST)
- References: <fmhqqh$brd$1@smc.vnet.net>
On 15 jan, 09:28, Steve Gray <stev... at roadrunner.com> wrote: > Can anyone point me to a Mathematica function that computes the convex hull of > a set of points in 3 dimensions? Speed is not very important and I > don't need to do a large number of points, probably less than 20. > Thank you for any information. > > Steve Gray Good day, Here is a toy solution: In[1]:= hullQ[{x_,y_,z_},pts_List]:= Module[{pl,a,b,c,d,fi}, pl[{x0_,y0_,z0_}]=a x0+b y0+c z0+d; fi=FindInstance[Not[a==0&&b==0&&c==0&&d==0]&&pl[{x,y,z}]==0&& (And@@(pl[#]>=0&/@pts)|| And@@(pl[#]<=0&/@pts)), {a,b,c,d},Reals]; Length[fi]>0 ]; In[2]:= pts=Table[{RandomInteger[{0,10}],RandomInteger[{0,10}],RandomInteger[{0,10}]}, {20}] Out[2]= {{5,10,0},{8,0,1},{10,9,10},{4,7,6},{0,9,4}, {2,0,8},{3,4,3},{9,4,9},{5,6,5},{2,0,3}, {3,9,5},{6,5,1},{10,0,10},{8,6,3},{5,6,3}, {6,8,5},{9,4,0},{2,8,0},{10,4,8},{0,9,4}} In[3]:= Select[pts,hullQ[#,pts]&] Out[3]= {{5,10,0},{8,0,1},{10,9,10},{0,9,4},{2,0,8}, {2,0,3},{10,0,10},{9,4,0},{2,8,0},{10,4,8},{0,9,4}} hth V.Astanoff