COMPGROUPS.NET | Search | Post Question | Groups | Stream | About | Register

3-D point cloud to a surface

• Follow

```Just wondering if anyone knows of a matlab function(s) which will build a surface from (x,y,z) point cloud?

I do this now using CAD software (pro-e) and I mesh the constructed surface for FEA analysis later. I'd much rather use matlab for both the surface construction & meshing (simple quad elements) if possible and not a tremendous task.

```
 0

```Amir wrote:
> Just wondering if anyone knows of a matlab function(s) which will build
> a surface from (x,y,z) point cloud?

Yes, but unless you want a convex hull, there is no unique solution unless you

For any finite set of points, there are an infinite number of planes that
divide the set into two (possibly unequal) subsets that could be considered as
top and bottom half-surfaces, possibly with a single-point bridge between
them. Without constraints to prevent this kind of arbitrary division, any of
the infinite number are as valid as any of the others.

Another way of phrasing this is that if your point cloud does not represent
the outside skin of a convex object, then there is no unique way of deciding
where the skin should follow, not unless you have some additional guidance as
to what it should look like.
```
 0

```Walter Roberson <roberson@hushmail.com> wrote in message <i2t25l\$pkd\$1@canopus.cc.umanitoba.ca>...
> Amir wrote:
> > Just wondering if anyone knows of a matlab function(s) which will build
> > a surface from (x,y,z) point cloud?
>
> Yes, but unless you want a convex hull, there is no unique solution unless you
>
> For any finite set of points, there are an infinite number of planes that
> divide the set into two (possibly unequal) subsets that could be considered as
>   top and bottom half-surfaces, possibly with a single-point bridge between
> them. Without constraints to prevent this kind of arbitrary division, any of
> the infinite number are as valid as any of the others.
>
> Another way of phrasing this is that if your point cloud does not represent
> the outside skin of a convex object, then there is no unique way of deciding
> where the skin should follow, not unless you have some additional guidance as
> to what it should look like.

Assuming you do have the x-y-z co-ords of the convex hull, this is what I usually use:
tri = delaunay(x,y);
h = trisurf(tri, x, y, z);

If not, maybe try this: <http://www.mathworks.com/matlabcentral/fileexchange/8998>.

Hope this helps.

--Andy
```
 0

```Thanks so much Andy & Walter. Very helpful answers.
```
 0

```This question may not pertinent to MATLAB but I would appreciate it if you tell me how you've been reconstructing a surface from a point cloud in Pro-e.

Thanks!

"Amir " <amirgsalem@gmail.com> wrote in message <i2sq56\$r9d\$1@fred.mathworks.com>...
> Just wondering if anyone knows of a matlab function(s) which will build a surface from (x,y,z) point cloud?
>
> I do this now using CAD software (pro-e) and I mesh the constructed surface for FEA analysis later. I'd much rather use matlab for both the surface construction & meshing (simple quad elements) if possible and not a tremendous task.
>
```
 0

4 Replies
494 Views

Similiar Articles:

7/23/2012 4:00:23 PM