Re: [visad] HowTo do a smooth surface interpolation from sample 3D points?

Hi Marius,

I am back to a new 3D project and now wonder, how to interpolate a
surface from which I know the coordinates of about 100 measurment
points? They are taken from the bulge surface of the upper half circle
of a tree trunk.

My First question is, which kind of set to use? I think it should be
Gridded2DSet, because the x and y coordinates would be the domain and z
the manifold dimension?

In 3-D the domain dimension is 3 but for a surface
the manifold dimension is 2.

Defining a surface for your data will be much simpler
if you know that one coordinate is a single-valued
function of the other 2. For example, in a topography
z is a function of x and y.

For a tree trunk, it may make sense to use cylindrical
coordinates: height, theta (angle) and radius (from the
center line of the tree trunk). If you know that radius
is a single-valued function of height and theta (which
seems naively intuitive), then you can construct a
triangular topology in a Delaunay object by passing the
100 (height, theta) pairs to the Delaunay.factory()
method, then passing this Delaunay object to a
Irregular3DSet constructor, along with the 100
(height, theta, radius) triples. This should construct
an Irregular3DSet with manifold dimension = 2.

My second question is, how to interpolate a smooth non-oscillating
surface from this points. It should represents the bulge surface in a
smooth way, so that CAD shapers can reproduce it.

You can interpolate by passing the Delaunay object
and the 100 (height, theta) pairs to an Irregular2DSet
constructor, constructing a FlatField of this with
radius values in the range, then resmapling this to a Gridded2DSet. You can pull values out of the resampled
FlatField to construct a Gridded3DSet with manifild
dimension = 2.

I am -->very rusty<-- at all this stuff, so caveat
emptor.

Good luck,
Bill



  • 2011 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: