How to calculate an irregular shape area?
Mostrar comentarios más antiguos
Dear all,
I have a shape model in 3D space. I project it onto a 2D plane. Now I have to calculate the area of its projection area. Since the area is irregular, how can I calculate it? Is there any method in matlab can help me to make it?
Many thanks for your help.
Best wishes Wenlong
3 comentarios
Walter Roberson
el 22 de Jun. de 2012
polyarea() ?
Mathieu NOE
el 13 de Dic. de 2024
hello
Respuestas (1)
Karan Singh
el 31 de En. de 2025
Editada: Karan Singh
el 31 de En. de 2025
Hi Wenlong and Izaro,
The answer is already covered in the comments above; however, I can assume that you might be working with different types of projections. A few come to mind:
- If your projection is a scattered set of plots, you can use "alphaShape" to create a boundary and then compute the area. alphaShape
- If it is a single polygon, you can use "boundary" and then "polyarea." polyarea
- If it contains holes, use "polyshape" and "rmholes" to remove holes and get the area. Maybe useful depends on cases.
[x, y, z] = sphere(50);
vertices_3d = [x(:), y(:), z(:)];
vertices_2d = vertices_3d(:, 1:2); % projection
shp = alphaShape(vertices_2d, 1); %alphaShape
area_alpha = area(shp);
k = boundary(vertices_2d(:,1), vertices_2d(:,2), 0.8); % polyarea
boundary_vertices = vertices_2d(k, :);
area_poly = polyarea(boundary_vertices(:,1), boundary_vertices(:,2));
fprintf('Area via alphaShape: %.4f\n', area_alpha);
fprintf('Area via boundary: %.4f\n', area_poly);
Categorías
Más información sobre Bounding Regions en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!