Script Setup
A = (0, 0)
B = (1.66, 1.04)
C = (2.03, 1.87)
D = (1.71, 2.14)
L = {A, B, C, D}
frame = Spline(L)
Lv = Sequence((0, -4 + k (4)/4), k, 1, 4)
Execute(Zip("f"+k+" = Translate(Dilate(frame, "+k*0.9+"), Vector( "+v+"))", v, Reverse(Lv), k, 1...4))
Lt = Sequence(k, k, 0, 1, 0.05)
P1 = Zip(f1(k), k, Lt)
P2 = Zip(f2(k), k, Lt)
P3 = Zip(f3(k), k, Lt)
P4 = Zip(f4(k), k, Lt)
O = (0, -0.8)
infTxt = Text("\scalebox{5}{\infty}", O + (0, 2), true, true, 0)
F1 = Zip(Dilate(Rotate(Translate(pic1, Vector(v)), k*pi/Length(P1)-pi/8, P), ln(k)/4 * 0.85, P), v, P1, P, P1, k, 1...Length(P1))
F2 = Zip(Dilate(Rotate(Translate(pic1, Vector(v)), k*pi/Length(P2)-pi/8, P), ln(k)/3.2 * 0.9, P), v, P2, P, P2, k, 1...Length(P2))
F3 = Zip(Dilate(Rotate(Translate(pic1, Vector(v)), k*pi/Length(P3)-pi/8, P), ln(k)/3.1 * 0.95, P), v, P3, P, P3, k, 1...Length(P3))
F4 = Zip(Dilate(Rotate(Translate(pic1, Vector(v)), k*pi/Length(P4)-pi/8, P), ln(k)/3, P), v, P4, P, P4, k, 1...Length(P4))
G1 = Reflect(F1, yAxis)
G2 = Reflect(F2, yAxis)
G3 = Reflect(F3, yAxis)
G4 = Reflect(F4, yAxis)
curve = Curve(0.9 sqrt(2) cos(t)/((sin(t))^2+1), 0.9 sqrt(2) cos(t) sin(t)/((sin(t))^2+1) + 2, t, 0, 2pi)
speed = 2
t = Slider(0, 2pi, 0.01, speed, 200)
m = Length(LPs)
n = m-1
Lm = 1...m
Ln = 1...n
LPs = Reverse(Sequence(curve(k + t), k, 0, 3, 0.1))
#Execute(Zip("", k, Ln))
Execute(Zip("Q"+k+" = Element(LPs, "+k+")", k, Lm))
Execute(Zip("SetVisibleInView(Q"+k+", 1, false)", k, Lm))
Execute(Zip("S"+k+" = Segment(Q"+k+", Q"+(k+1)+")", k, Ln))
Execute(Zip("ShowLabel(S"+k+", false)", k, Ln))
Execute(Zip("SetLineThickness(S"+k+", 6*ln("+(n+2-k)+"))", k, Ln))
ShowAxes(false)
ShowGrid(false)