What I'm after might be thought of as operating on the 'rope' that KnotData[]
uses. Specifically, I'd like to be able to specify that the knot is to be made of a prism (not the Mathematica Prism[]
, which is always triangular) whose cross section could be a not-necessarily-regular $n$-gon, and could be twisted a la the Möbius strip. Looking at the daunting appearance of the InputForm[]
of KnotData[]
convinces me that polygonalization and twisting steps should precede KnotData[]
- but how?
Here is the InputForm[]
structure for several knots (e.g., Torus, Trefoil)
Graphics3D[{{GraphicsComplex[{{-0.53993, -0.00924, 0.16395}, ... ,
{-0.50971, 0.00165, 0.07456}},
{{{EdgeForm[],
GraphicsGroup[{Polygon[{{1, 2, 14, 13}, ... ,
{8820, 8809, 8821, 8832}}]}]}, {}}},
VertexNormals -> {{0.00026, -0.18488, 0.98276}, ...,
{0.60404, 0.15619, -0.78149}}]}},
{Boxed -> False, PlotRange -> {All, All, All}, PlotRangePadding ->
{Automatic, Automatic, Automatic}, ViewPoint -> {0, 0.01, 5}}]
Notes: Tube
seems to be the default (whether explicitly specified, or not, as in the above). Documentation, i.e., ref/KnotData, shows the use of Sphere
to accomplish a similar goal. And, speaking of docs, there seems to be an omission:
Below list of Classes omits "Ribbon"
, "Slice"
, and "Twist"
though all three are included in the "Basic classes of knots" in ref/KnotData. Both "Alternating"
and "Nonalternating"
are listed as "Basics"
, though it appears that "Nonalternating"
should be with the other Non's in "Negative classes of knots."
KnotData["Classes"]
{"Alternating", "Amphichiral", "Chiral", "Composite", "Hyperbolic",
"Invertible", "Nonalternating", "Nonhyperbolic", "Noninvertible",
"Nonsatellite", "Nontorus", "Prime", "Satellite", "Torus"}
Lastly, I obviously haven't gotten the hang of Markdown yet. Much obliged.