Volume of 3D polyhedron

24 次查看(过去 30 天)
slaiyer
slaiyer 2014-8-24
评论: Iila 2016-2-25
Given a set of 3D coordinates, how can one find the volume of the polyhedron that is not necessarily convex?
  7 个评论
Iila
Iila 2016-2-25
Thank you. But it doesn't. My polyhedra are concave. I also want to calculate the self intersecting volume, if any.

请先登录,再进行评论。

采纳的回答

Mike Garrity
Mike Garrity 2016-2-24
One option you might look at is alphaShape. It's similar to convhull, but more general. It will create non-convex shapes.
You use it like this. First I need a simple cloud of points.
npts = 75;
pts = randn(npts,3);
scatter3(pts(:,1),pts(:,2),pts(:,3),'filled')
Then I create my alphaShape, and plot it.
shp = alphaShape(pts);
h = plot(shp);
But the reason this might be useful for you, is that it has a method that will return the volume of the shape:
volume(shp)
ans =
27.3914
And another method which will tell you whether other points are inside the shape.
testpts = randn(150,3);
inmask = inShape(shp,testpts);
h.FaceColor = [.75 .75 .75];
h.FaceAlpha = .25;
hold on
scatter3(testpts(inmask,1),testpts(inmask,2),testpts(inmask,3),'.','MarkerEdgeColor','green')
scatter3(testpts(~inmask,1),testpts(~inmask,2),testpts(~inmask,3),'.','MarkerEdgeColor','red')
  1 个评论
slaiyer
slaiyer 2016-2-24
This seems to be exactly what I was looking for back then. Thanks a lot for your input; cheers!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Bounding Regions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by