Re: [Q] ExtendGraphics ListSurfacePlot3D inconsistent error
- Subject: [mg3313] Re: [Q] ExtendGraphics ListSurfacePlot3D inconsistent error
- From: ianc (Ian Collier)
- Date: 26 Feb 1996 12:54:24 -0600
- Approved: usenet@wri.com
- Distribution: local
- Newsgroups: wri.mathgroup
- Organization: Wolfram Research, Inc.
- Sender: daemon at wri.com
In article <4gi5df$6n1 at dragonfly.wolfram.com>, adbened at alumnae.caltech.edu ( Alto D. Benedicto) wrote: > When two datasets sharing a common boundary were "Union"ed and > Flattened such that it now has the form > { {x1,y1,z1}, {x2,y2,z2}, {x3,y3,z3}, ... , {x99,y99,z99} } > ListSurfacePlot3D[theabovelist] gave the following error message: > LinkObject::linkd > LinkObject[delaunay, 2, 2] > is closed; the connection is dead. > > Is this error related to the illustrative test example below? > > In[1] := AppendTo[$Path, "/usr/local/TWJ_Packages"] > In[2] := <<ExtendGraphics`SurfaceGraphics3D` > In[3] := data1 = Table[{x/100, y/1000., 0.25 x}, {x,-1,2},{y,2,4}] > In[4] := data2 = Table[{x/100, y/1000., 0.25 x}, {x,2,2},{y,2,4}] > In[5] := dataunion = Union[data1, data2] > In[6] := data1flat = Flatten[data1,1] > In[7] := data2flat = Flatten[data2,1] > In[8] := dataunionflat = Flatten[dataunion,1] > > Now, ListSurfacePlot3D[data1] gives correct plot while > ListSurfacePlot3D[data1flat] gives wrong plot (opposite to our > intuition, since syntax for that of data1 is supposedly incorrect). > Curiously, ListSurfacePlot3D[data2flat] resulted in same error > message as my real data, though ListSurfacePlot3D[data2] has no > error message. > ListSurfacePlot3D[dataunion] is correct while > ListSurfacePlot3D[dataunionflat] is wrong. > > Even stranger,when the limit in data2 is changed to {x,2,4}, the > resultant ListSurfacePlot3D[dataunionflat] is now correct, inspite > of the fact that ListSurfacePlot3D[data1flat] is still wrong. > > The original data2 might result in an error because of {x,2,2}. > But what about the other errors? They don't even seem to be consistent. > And to reiterate, why did my real data give that error message when the > component datasets (also Flatten) making it give correct plots? > > THANK YOU very much in advance for any help suggested. > Here is a reply from Tom Wickham-Jones: There are some problems that I have found with the triangulation routine when it is applied to regular data. One way to avoid these problems is to slightly perturb the data. This can be done with the following function. PerturbData[ d_List] := Map[ PerturbData, d] PerturbData[ d_] := If[ NumberQ[ d], N[ d + d (Random[ ]-0.5)/1000000.], d] Then in this example the following will work. ListSurfacePlot3D[ PerturbData[ dataunionflat]] Sometime in the future I will updating these functions with this and a number of other improvements. Tom Wickham-Jones WRI ----------------------------------------------------------- Ian Collier Wolfram Research, Inc. ----------------------------------------------------------- tel:(217) 398-0700 fax:(217) 398-0747 ianc at wolfram.com Wolfram Research Home Page: http://www.wolfram.com/ -----------------------------------------------------------