Stepper
This is obviously the same basic idea as Reinvention, but with eight spokes rather than six.
Two possibly confusing definitions in the following code:
- The quantity r defines the length of the spokes, which varies between 1 and \sec(\pi/8) \approx 1.08239. The latter is the length needed to make sure spokes connect in the quadrilaterals-and-octagons configuration, but leads to unpleasant visual artifacts if it isn't decreased to 1 when switching configurations.
- The function f(x) is 1 minus e^{-7x/16}\left[ \cos\left(\frac{3\sqrt{23}}{16}x\right) + \frac{1}{2} \sin \left(\frac{3\sqrt{23}}{16}x\right)\right], which is a solution of the (under-)damped harmonic oscillator equation y'' + \frac{7}{8}y' +y=0.
Anyway, here's the code:
DynamicModule[{n = 8, cols, f, t, r},
cols = RGBColor /@ {"#08D9D6", "#FF2E63", "#252A34"};
f[x_] :=
1 - E^(-7 x/16) Cos[(3 Sqrt[23] x)/16] -
1/2 E^(-7 x/16) Sin[(3 Sqrt[23] x)/16];
Manipulate[
t = ?/8 f[s] + ?/8 f[Clip[s - 20, {0, 20}]];
r = (1 - f[s] + f[Clip[s - 20, {0, 20}]]) (1 - Sec[?/8]) +
Sec[?/8];
Graphics[{Thickness[.01], CapForm["Round"],
Table[Line[{x, 2 y + (-1)^x/2} + # & /@ {{0, 0},
r {Cos[? + (-1)^x t], Sin[? + (-1)^x t]}},
VertexColors -> {cols[[1]],
Blend[Join[#, #] &[cols[[;; 2]]],
1/3 f[s] + 1/3 f[Clip[s - 20, {0, 20}]]]}], {x, -3,
3}, {y, -3.25, 2.75}, {?, 0, 2 ? - 2 ?/n,
2 ?/n}]}, PlotRange -> 3, ImageSize -> 540,
Background -> cols[[3]]], {s, 0, 40}]
]