How do I determine the surface area of a 2-D surface in a 3-D space?
    8 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    MathWorks Support Team
    
 am 13 Mär. 2015
  
    
    
    
    
    Bearbeitet: MathWorks Support Team
    
 am 10 Jul. 2017
            I have 3 vectors "xcoord", "ycoord", and "zcoord" that represent the (x,y,z)-coordinates of a 2D surface in 3D space. I want to determine the surface area of the surface.
I tried using the "surfaceArea" method for an "AlphaShape" object, but the surface was disconnected. On changing the "Alpha" value, the 2D surface became a 3D object.
I want to compute the surface area for the connected 2D surface. How can I do this? 
Akzeptierte Antwort
  MathWorks Support Team
    
 am 10 Jul. 2017
        If  you want to compute the surface area of a 2-D surface in a 3-D space, the Delaunay Triangulation would be the best approach to go ahead with. You could compute the sum of the triangles formed by the Delaunay Triangulation to find the surface area of the 2-D surface.
 The following steps should help to obtain a 'delaunay' surface and to compute the surface area of the same.
 1) tri = delaunay(X,Y) creates a 2-D Delaunay triangulation. 'tri' is a matrix representing the set of triangles that make up the triangulation.
tri = delaunay(xcoord,zcoord);
P = [xcoord,ycoord,zcoord];
2) Obtain the edges in each triangle formed by the 'delaunaytriangulation'
v1 = P(tri(:,2), :) - P(tri(:,1), :);
v2 = P(tri(:,3), :) - P(tri(:,2), :);
3) Calculating the cross product of the edges in each triangle of the surface
cp = 0.5*cross(v1,v2);
4) Surface area of the entire surface is calculated as the sum of the areas of the individual triangles
surfaceArea = sum(sqrt(dot(cp, cp, 2)))
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Delaunay Triangulation finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
