| zonohedron | R Documentation |
Construct a zonohedron from a numeric matrix with 3 rows. Also construct some special zonohedra useful for testing.
zonohedron( mat, e0=0, e1=1.e-6, e2=1.e-10, ground=NULL )
polarzonohedron( n, m=n, height=pi, ground=NULL )
regularprism( n, m=n, axis=c(0,0,1), ground=NULL )
mat |
a numeric 3xM matrix, where 3 |
e0 |
threshold for a column of |
e1 |
threshold, in a pseudo-angular sense, for non-zero column vectors to be multiples of each other, and thus members of a group of multiple (aka parallel) points in the associated matroid. It OK for a column to be a negative multiple of another. |
e2 |
threshold, in a pseudo-angular sense, for the planes spanned by pairs of column vectors to be considered coincident, and thus the columns to be in the same hyperplane of the associated matroid. |
ground |
The ground set of the associated matroid of rank 3 -
an integer vector in strictly increasing order, or |
n |
an integer |
m |
an integer with 2 |
height |
the z value at the apex of the zonohedron,
which is the sum of all the generators.
The z value of all the generators is set to make this happen.
When |
axis |
the axis of the regular prism. It must be a 3-vector with z value non-zero. |
In zonohedron(), the contruction of the zones (or belts) is optimized by following
the procedure in Heckbert.
The key step is sorting face normals that all lie on a great circle
of the unit sphere.
For polarzonohedron() the circle is centered at
(0,0,height/n) and parallel to the xy-plane.
The radius is height/n.
For regularprism() the circle is the unit circle in the xy-plane.
The 3-vector axis is added as column m+1 of the matrix.
The returned zonohedron is the Minkowski sum of a zonogon and
the line segment defined by axis.
If m < n, the zonogon may not be regular.
Both of these functions are useful for testing.
They load the matrix mat and pass it to zonohedron().
zonohedron() and polarzonohedron() return a list with S3 class 'zonohedron'.
In case of error, e.g. invalid mat,
the functions print an error message and returns NULL.
The ground set of positive integers should not be too sparse; otherwise performance may suffer.
B. L. Chilton and H. S. M. Coxeter. Polar Zonohedra. The American Mathematical Monthly. Vol 70. No. 9. pp. 946-951. 1963.
Paul Heckbert. An Efficient Algorithm for Generating Zonohedra. 3-D Technical Memo 11. 24 February 1985. Computer Graphics Lab. New York Institute of Technology
zonohedron(),
zonoseg(),
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.