Do you have the addressing to get the areas of the faces? If so you
could do use Gauss' theorem.
Take a vector
U=(x, 0, 0)
Then
div(U)=1
and
V = volume_integrate(1)
= volume_integrate(div(U))
= surface_integrate(U . N)
(with N the outwards pointing normal (Nx, Ny, Nz))
= surface_integrate(x * Nx)
Since your faces are flat and directed along the coordinates axes the
surface integration becomes a multiplication of the surface area with +-
the x-component of the faces that are perpendicular to the x-axis.
To get the surface area you can do the same in 2D (i.e. convert a
surface integral into a line integral) in each face. That way you only
need the addressing to walk along edges.
There might actually be a better way based upon sorting (like in
scan-line conversion) since your thickness is constant but above method
should work and is quite general.
Regards,
Mattijs
A. Murat Tanyer wrote:
Hi all,
I have a Shape3D something like the attached file. I known the (x,y,z)
coordinates of all the vertices. All the angles are 90 and the thickness
is constant.
Is there a way to find the volume of shapes in JAVA3D?
I can divide the shape into small rectangles and find the areas but I
don't want this because some shapes have too many vertices. So it is not
an efficient way for me.
Thanks for any help.
Ali
------------------------------------------------------------------------
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".