asymptote: solids
8.33 'solids'
=============
This solid geometry package defines a structure 'revolution' that can be
used to fill and draw surfaces of revolution. The following example
uses it to display the outline of a circular cylinder of radius 1 with
axis 'O--1.5unit(Y+Z)' with perspective projection:
import solids;
size(0,100);
revolution r=cylinder(O,1,1.5,Y+Z);
draw(r,heavygreen);
[cylinderskeleton]
Further illustrations are provided in the example files
'cylinder.asy', 'cones.asy', 'hyperboloid.asy', and 'torus.asy'.
The structure 'skeleton' contains the three-dimensional wireframe
used to visualize a volume of revolution:
struct skeleton {
struct curve {
path3[] front;
path3[] back;
}
// transverse skeleton (perpendicular to axis of revolution)
curve transverse;
// longitudinal skeleton (parallel to axis of revolution)
curve longitudinal;
}