Construcción dodecaedro

Se muestra el proceso de construcción del dodecaedro regular partiendo de un pentágono regular.

Velocidad animación plano

Mueve H

L = 2.2 (slider from 1 to 4, step 0.1)
O = Intersect(xAxis, yAxis)
n = 5 (slider from 3 to 5, step 1)
c = 1.4142135623730951
t = 1.7320508075688772
p = 1.1755705045849463
ar_1 = If(n ≟ 3, L / t, If[n ≟ 4, L / c, If[n ≟ 5, L / p]])
RA = 1 (slider from 0 to 1, step 1)
des = If(RA ≟ 0, L, If[RA ≟ 1, ar_1])
ci = Circle(O, des)
A = Point(ci)
A' = Rotate(A, (360 * ° / n), O)
poli1, a, d, e, f, g, B, C, D = Polygon(A, A', 5)
A'' = Rotate(A', (360 * ° / n), O)
F = Midpoint(A', A'')
h = Line(A'', A')
r = Circle(h, D)
O' = Mirror(O, h)
i = Line(O', h)
s = Circle(i, O)
Intersect()
E = Intersect(s, r, 1)
D' = Mirror(D, h)
D'' = Rotate(D', 0.1*°, h)
ar = CircleArc(F, D'', E)
v = 1.8 (slider from -5 to 5, step 0.1)
b = Distance(A, A')
poli1' = Mirror(poli1, h)
k = Circle(h, D')
ang = Angle(D', F, E)
G = Point(r)
q = CircumcircleArc(D', G, E)
H = Point(ar)
β = Angle(D', F, H)
poli = Rotate(poli1', β, h)
lista1 = Sequence(Rotate[poli, ((i * 72))°, zAxis], i, 0, 4)
O'' = Rotate(O', β, h)
j = OrthogonalLine(O'', i, space)
lista2: {poli1, lista1}
lista2' = Translate(lista2, Vector[(0, 0, 0)])
P = Intersect(j, zAxis)
M = Midpoint(O, P)
lista2'' = Mirror(lista2', M)
dodec: {lista2', lista2''}
dodec' = Translate(dodec, Vector[(0, 0, 0)])