Construct a zonogon from a numeric matrix with 2 rows.
zonogon( mat, e0=0, e1=1.e-6, ground=NULL )polarzonogon( n, m=n, ground=NULL )
zonogon() and polarzonogon() return a list with S3 class 'zonogon'.
In case of error, e.g. invalid mat,
the functions print an error message and returns NULL.
a numeric 2xM matrix, where 2 \(\le\) M. The matrix must have rank 2 (verified). The M columns are the generators of the zonogon.
threshold for a column of mat to be considered 0,
in the \(L^\infty\) norm.
Since the default is e0=0,
by default a column must be exactly 0 to be considered 0.
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.
The ground set of the associated matroid of rank 2 -
an integer vector in strictly increasing order, or NULL.
When ground is NULL, it is set to 1:ncol(mat).
If ground is not NULL, length(ground) must be equal to ncol(mat).
The point ground[i] corresponds to the i'th column of mat.
an integer \(\ge\) 3.
The generators are computed as n equally spaced points on
the unit circle, starting at (1,0).
an integer with 2 \(\le\) m \(\le\) n.
When m < n, only the first m
points are used as generators of the zonogon.
polarzonogon() is useful for testing.
The term polar zonogon is my own, and based on
the polar zonohedron in Chilton & Coxeter.
It it loads the matrix mat and passes it to zonogon().
When m=n the zonogon is a regular 2n-gon.
When m<n the zonogon is a has 2m vertices,
but is not necessarily regular.
The generators correspond to the n'th-roots of unity.
B. L. Chilton and H. S. M. Coxeter. Polar Zonohedra. The American Mathematical Monthly. Vol 70. No. 9. pp. 946-951. 1963.
zonohedron(),
zonoseg(),