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()
,