MATLAB Answers

0

Calculate volume from an isosurface

Asked by Rafael Kübler on 19 Dec 2018
Latest activity Commented on by Jan
on 19 Dec 2018
Hello,
i have a isosurface like in the picture below generated by the commands isosurface and patch.
How can I calculate the volume enclosed by this surface and the coordinate planes?
Unbenannt.PNG
Thank you for your help in advance.

  1 Comment

Jan
on 19 Dec 2018
This seems to imply, that the surface is closed.

Sign in to comment.

2 Answers

Answer by Bruno Luong
on 19 Dec 2018
 Accepted Answer

If your iso surface is get from isosurface() command then your volume is set of voxels
V <= isovalue
or
V >= isovalue
So the volume is approximatively
V = sum(V <= isovalue) * dV % change test sign accordingly
with, for uniform grid
dV = dX*dY*dZ
or
V = sum((V <= isovalue).*dX*dY*dZ)
otherwise

  0 Comments

Sign in to comment.


Answer by madhan ravi
on 19 Dec 2018

  5 Comments

The borders of the volume which has to be calculated is the coordinate system as displayed and the surface.
@Rafeal so maybe someone could help you then I thought the links could help you
Jan
on 19 Dec 2018
@Rafael: What eactly does "as displayed" mean. Please do not let us guess, what you want. Somebody has to write down (preferably in code) how your volume is limited. Currently I only see two green surfaces and the 3 white planes of teh axes object. But this is not a closed volume. If you mean 6 planes at specific x, y and z positions, please explain this explicitly.
The shown 2 surfaces split the box created by the planes at x=200:-200, y=55.3:263.4, z=-68:100 into 3 different volumes. How to you choose the interested one uniquely?

Sign in to comment.