필터 지우기
필터 지우기

How to get the volume of a 3D concave shape?

조회 수: 10 (최근 30일)
Aaronne
Aaronne 2013년 1월 10일
Hi smart guys,
I am wondering if anyone knows how to get the volume of a 3D concave shape? The Matlab build-in function can only calculate the volume of a convex shape. For example,
[K, V] = convhulln(shape.vertices);
V is the volume. Here the shape is defined by a mesh with vertices and faces.
Thanks very much.
Best, Aaronne.

채택된 답변

Sean de Wolski
Sean de Wolski 2013년 1월 10일
편집: Sean de Wolski 2013년 1월 10일
I would recommend voxelizing it and then just summing the resulting three dimensional volumetric image. There are a few utilities on the FEX that do this:

추가 답변 (2개)

Image Analyst
Image Analyst 2013년 1월 10일
If you have a 3D image, one way is to just add up all the voxels in the 3D image. It gets more complicated if you don't want a stack of cubes (like a voxelized image) and you want a volume defined by triangulation. And I'm not sure the volume difference would be very significant. Exactly what is the form of the data you are starting with? Do you have a list of (x,y,z) locations for every quantized point in the volume? Or do you only have a few vertices that are scattered around?

José-Luis
José-Luis 2013년 1월 10일
편집: José-Luis 2013년 1월 10일
Not automagically. You could try the file exchange. In 3D you could use the delaunay() function and sum up the volumes of all the tetrahedrons.
The volume of a tetrahedron is, in pseudo-code:
V = 1/6 *|det(V1,V2,V3)|
with
V1 := P2-P1
V2 := P3-P2
V3 := P4-P3
  댓글 수: 5
Sean de Wolski
Sean de Wolski 2013년 1월 10일
Judging by the shape.vertices, I was dangerously assuming there would also be a faces or connectivities matrix as well.
José-Luis
José-Luis 2013년 1월 10일
@Sean: thanks!

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Triangulation Representation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by