correct Creation of a 3D AlphaShape from Matrix
4 views (last 30 days)
Show older comments
I try to interpret my result using Alphashape for a 3D Pointcloud.
My target is to shape a geometry (freeformed plane), generated by any random Pointcloud (like in my example) "correctly", so i can calculate its surfacearea.
Things i dont understand and cant get rid off:
- 2D representation. Somehow matlab is hiding the z Axis, which is a bit confusing, even if the values in my testmatrix have a very small deviation
- The Alphavalue is very high from the beginning; (50) is the absolut minimum to generate any structure. At the same time i already have crosselements. Do I see here a very thin 3D shaped geometry (I assume) or is it a curved Plane, which has intersecting elements.
- when im using the 2D Alphashape, the representation is much more correct but flat and not placed in the 3D room. Im worrying that i could miss relevant surfacearea informations by using this result.
Is there a possibility which uses just triangles to reshape the Matrix as a curved plane? And how do i have to interpret this alpha value? is this 50 related to the values in the third row?
clear all
load testfile.mat
scatter3(Testmatrix(:,1),Testmatrix(:,2),Testmatrix(:,3))
hold on
shp = alphaShape(Testmatrix(:,1),Testmatrix(:,2),Testmatrix(:,3),50);
plot(shp)
totalsurfarea = surfaceArea(shp);
0 Comments
Answers (1)
Matt J
on 2 Aug 2023
Edited: Matt J
on 2 Aug 2023
This might be what you want, but I can't tell for sure. It sounds like you're just trying to do a trisurf plot.
load testfile.mat
[x,y,z]=deal(Testmatrix(:,1),Testmatrix(:,2),Testmatrix(:,3));
T = delaunay(x,y);
scatter3(x,y,z,'r', 'filled'); hold on
trisurf(T,x,y,z,'FaceAlpha',0.3); hold off
axis square
0 Comments
See Also
Categories
Find more on Bounding Regions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!