Have you thought about a metrical extension to incidence matrices? I mean a complete description of the polytope's geometry, not just the abstract structure.
Obviously this could be done by giving coordinates for the vertices (possibly in a skewed system as with Wendy's notation), in addition to the incmat itself (as the vertices alone aren't enough to describe a non-convex polytope).
Instead of coordinates, I'm considering the measures of all dyads in the polytope. A k-dyad is a (k-1)-face and a (k+1)-face and two k-faces incident with them; this is abstractly the line segment, the 1-polytope. So the measures are edge lengths, vertex angles in a polygon, dihedral angles in a polyhedron, dichoral angles in a polychoron, and so on.
If we want to describe the geometry of non-convex polytopes, unsigned angles (in the interval (0°, 180°)) are not sufficient, as shown by these two heptagons:
- Code: Select all
o
/ \
/ \
o-----o o-----o
| |
| |
| |
| |
o-----------------o
o-----o o-----o
| \ / |
| \ / |
| o |
| |
o-----------------o
They have the same edge lengths, and the same unsigned angles: 90°, 90°, 90°, 90°, 120°, 60°, 120°. To distinguish them we need signed angles: the first polygon has 90°, 90°, 90°, 90°, -120°=240°, 60°, -120°; and the second one has 90°, 90°, 90°, 90°, 120°, -60°, 120°. In fact this describes an insided polytope. A polygon can be turned inside-out by negating all angles.
A generic tetrahedron is partially described by this incmat:
- Code: Select all
1 | 1 1 1 1 | 1 1 1 1 1 1 | 1 1 1 1 | 1 nulloid
--+---------+-------------+---------+---
1 | 1 0 0 0 | 1 1 0 1 0 0 | 1 1 1 0 | 1 vertex 1
1 | 0 1 0 0 | 1 0 1 0 1 0 | 1 1 0 1 | 1 vertex 2
1 | 0 0 1 0 | 0 1 1 0 0 1 | 1 0 1 1 | 1 vertex 3
1 | 0 0 0 1 | 0 0 0 1 1 1 | 0 1 1 1 | 1 vertex 4
--+---------+-------------+---------+---
1 | 1 1 0 0 | 1 0 0 0 0 0 | 1 1 0 0 | 1 edge 12
1 | 1 0 1 0 | 0 1 0 0 0 0 | 1 0 1 0 | 1 edge 13
1 | 0 1 1 0 | 0 0 1 0 0 0 | 1 0 0 1 | 1 edge 23
1 | 1 0 0 1 | 0 0 0 1 0 0 | 0 1 1 0 | 1 edge 14
1 | 0 1 0 1 | 0 0 0 0 1 0 | 0 1 0 1 | 1 edge 24
1 | 0 0 1 1 | 0 0 0 0 0 1 | 0 0 1 1 | 1 edge 34
--+---------+-------------+---------+---
1 | 1 1 1 0 | 1 1 1 0 0 0 | 1 0 0 0 | 1 face 123
1 | 1 1 0 1 | 1 0 0 1 1 0 | 0 1 0 0 | 1 face 124
1 | 1 0 1 1 | 0 1 0 1 0 1 | 0 0 1 0 | 1 face 134
1 | 0 1 1 1 | 0 0 1 0 1 1 | 0 0 0 1 | 1 face 234
--+---------+-------------+---------+---
1 | 1 1 1 1 | 1 1 1 1 1 1 | 1 1 1 1 | 1 body
We also need to specify the edge lengths l(i)(j), face-vertex angles a(i)(j)(k) [at vertex (i)], and dihedral angles h(i)(j). (Of course the edge lengths alone determine the angles if the geometry is known to be Euclidean or hyperbolic etc.) We could put these in another matrix, two blocks above and below the diagonal blocks, wherever there's a '1' in the incidence matrix:
- Code: Select all
| | l12 l13 l23 l14 l24 l34 | | nulloid
----+---------------------+-------------------------+---------------------+-----
| | | a123 a124 a134 | vertex 1
| | | a213 a214 a234 | vertex 2
| | | a312 a314 a324 | vertex 3
| | | a412 a413 a423 | vertex 4
----+---------------------+-------------------------+---------------------+-----
l12 | | | | h12 edge 12
l13 | | | | h13 edge 13
l23 | | | | h23 edge 23
l14 | | | | h14 edge 14
l24 | | | | h24 edge 24
l34 | | | | h34 edge 34
----+---------------------+-------------------------+---------------------+-----
| a123 a213 a312 | | | face 123
| a124 a214 a412 | | | face 124
| a134 a314 a413 | | | face 134
| a234 a324 a423 | | | face 234
----+---------------------+-------------------------+---------------------+-----
| | h12 h13 h23 h14 h24 h34 | | body
This is clearly unsatisfactory for several reasons. The matrix is mostly wasted space. If the lengths and angles are given numerically with many digits, then the matrix becomes much wider and wastes more space. This notation doesn't work for the symmetry-specialized type of incmat; in the digonal antiprism, a vertex is incident with 3 equivalent triangular faces, but the 3 angles are not all the same, so we can't put a single angle in place of the '3'.
Any ideas for a better notation, which still shows all the lengths and angles explicitly?
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩