<- previous index next ->
Some volumes and areas you should already know:
area of a triangle is 1/2 base times height
| 1 1 1 |
area of a triangle is 1/2 det| x1 x2 x3 |
| y1 y2 y3 |
area of a triangle is |(V2 - V1) x (V3 - V1)| length of cross product
area of a rectangle is base times height
area of a parallelogram is base times height
area of a circle is Pi r^2
Some variations that you may need some day:
You may not know the area of a five point star inscribed in
a unit circle or the area of an arbitrary closed polygon.
Easy to calculate, using the sailors algorithm:
Given the n points (x,y) of a closed polygon where no edges cross,
compute the sum i=1..n (x_i+1 - x_i) * (y_i+1 + y_i)/2
(The first point is repeated as the n+1 point,
add enough to the y's to make them all positive)
The computed area will be positive if an upper outside edge is
listed in counter clockwise order, else negative.
A sample program is:
poly_area.c
poly_area_maze.out
maze.path
poly_area_star.out
star.path
The maze is:
The star is:
Volume of a sphere 4/3 Pi r^3
Area of a sphere 4 Pi r^2
Volume of a cone, tetrahedron, any solid with a planar base that goes
to a point 1/3 base area times height
| 1 1 1 1 |
Volume of a tetrahedron 1/6 det | x1 x2 x3 x4 |
| y1 y2 y3 y4 |
| z1 z2 z3 z4 |
The general volume computation
of a closed surface is a little more complicated.
The sailors algorithm is still the basic idea.
Consider a closed surface covered by triangles. Each triangle is
three points and are coded counter clockwise such that the normal
vector to the triangle points out of the volume.
Make all z coordinates positive.
Compute the average z for a triangle, "height".
Compute the area for a triangle, "base".
Compute the z component of the normal vector, znorm.
The volume of this piece of the surface is
height times base times znorm
If znorm is positive, this triangle is on top and contributes
positive volume.
If znorm is negative, this triangle is on the bottom and
contributes negative volume.
The area in the x-y plane is the area of the triangle times znorm.
A vertical triangle has znorm = 0.
A horizontal triangle has znorm = 1 on top and -1 on bottom.
A triangle tipped 45 degrees has a znorm = cos(45 degrees) = 0.7071
Numerical approximation
A program that uses graphics data files to compute the volume and
area of a closed volume is:
volume_dat.c
output for a crude, 32 triangle, sphere is:
volume_dat.c reading sphere_div.dat
status=0, size=1
final total area = 10.4178, total volume = 2.94281
from data:
sphere_div.dat
output for a 2048 triangle sphere is:
volume_dat.c reading sphere_div4.dat
status=0, size=1
final total area = 12.5264, total volume = 4.16424
from data:
sphere_div4.dat
The volume of a perfect sphere of radius 1 is about 12.56
The area of a perfect sphere of radius 1 is about 4.189
<- previous index next ->