Expand description
Hankin star patterns: build an n-fold star rosette by the contact-angle
method. n contact points sit symmetrically on a circle; from each, a ray
leaves at the contact angle from the inward normal, and adjacent rays meet at
the petal tips. Connecting each contact point to its two neighbouring tips
traces the interlaced star.
This runs from Scene::update, not only from configure (Plan 0054,
ADR-0060). variant is a continuous contact angle, so a bound param
reaches this construction during playback; star.rs’s hysteresis cache bounds
the rate (one rebuild per STEP_DEG of travel, measured at 0.34 us for the
reachable n = 12), but the call itself is on the hot path and the panic
pragma below is load-bearing rather than precautionary.
v1 scope (ADR-0007 / plan Risks): a small set of regular n-fold stars with a
contact angle — not arbitrary tessellations. The construction is a pure
deterministic function of (n, contact_angle) and, by building every petal
from the same rotation-equivariant rule, its segment set is invariant under a
2*pi/n rotation (directly unit-tested).
Constants§
- TILINGS
- The
[generator] tilingspellings, in roster order — every aliastiling_orderaccepts, plus thenonethat draws no interlace at all.
Functions§
- star_
rosette - Build an
n-fold star rosette with the givencontact_angle(radians) intoout(cleared first). Produces2 * nsegments when every petal tip resolves. Positions are in roughly the unit disc; the scene fit-normalizes. - tiling_
order - Map a
tilingname to its star ordern. Accepts a few named/numeric regular tilings (the v1 set); returnsNonefor anything else so the loader can reject it.