正十二面體
Author: 藍邦偉  老師

x

y

z

α = 2.712241657599188 rad (slider from 0 to 6.283185307179586, step 0.1*°)
β = 2.321287905152458 rad (slider from 0 to 6.283185307179586, step 0.1*°)
O = (10.591186862084772, 3.085498937910503)
X_{unit}: O + (cos(α), sin(α) * cos(β))
Y_{unit}: O + (-1 * sin(α), cos(α) * cos(β))
Z_{unit}: O + (0, sin(β))
u = Vector(O, X_{unit})
v = Vector(O, Y_{unit})
w = Vector(O, Z_{unit})
L = 3 (slider from 1 to 10, step 1)
a = Vector(O - L * v, O + L * v)
b = Vector(O - L * w, O + L * w)
z = Vector(O - L * u, O + L * u)
A_1: O + L * u
B_1: O + L * v
Z: O + L * w
P_1: O + u + v + w
P_2: O + u + v - w
P_3: O + u - v + w
P_4: O - u + v + w
P_5: O - u - v + w
P_6: O - u + v - w
P_7: O + u - v - w
P_8: O - u - v - w
φ = 1.618033988749895
P_9: O + 1 / φ * v + φ * w
P_{10}: O + 1 / φ * v - φ * w
P_{11}: O - 1 / φ * v + φ * w
P_{12}: O - 1 / φ * v - φ * w
P_{13}: O + 1 / φ * u + φ * v
P_{14}: O + 1 / φ * u - φ * v
P_{15}: O - 1 / φ * u + φ * v
P_{16}: O - 1 / φ * u - φ * v
P_{17}: O + φ * u + 1 / φ * w
P_{18}: O + φ * u - 1 / φ * w
P_{19}: O - φ * u + 1 / φ * w
P_{20}: O - φ * u - 1 / φ * w
多邊形1, p_3, p_1, p_4, p_5 = Polygon(P_3, P_1, P_4, P_5)
多邊形3, p_9, p_{10}, p_{11}, p_{12} = Polygon(P_1, P_2, P_6, P_4)
多邊形4, p_{13}, p_{14}, p_{15}, p_{16} = Polygon(P_4, P_6, P_8, P_5)
多邊形5, p_{17}, p_{18}, p_{19}, p_{20} = Polygon(P_5, P_8, P_7, P_3)
多邊形6, p_{21}, p_{22}, p_{23}, p_{24} = Polygon(P_6, P_8, P_7, P_2)
多邊形10, p_{37}, p_{38}, p_{39}, p_{40}, p_{41} = Polygon(P_{17}, P_{18}, P_7, P_{14}, P_3)
多邊形12, p_{47}, p_{48}, p_{49}, p_{50}, p_{51} = Polygon(P_{11}, P_3, P_{17}, P_1, P_9)
多邊形11, p_{42}, p_{43}, p_{44}, p_{45}, p_{46} = Polygon(P_{11}, P_5, P_{16}, P_{14}, P_3)
多邊形13, p_{52}, p_{53}, p_{54}, p_{55}, p_{56} = Polygon(P_1, P_{17}, P_{18}, P_2, P_{13})
多邊形14, p_{57}, p_{58}, p_{59}, p_{60}, p_{61} = Polygon(P_9, P_1, P_{13}, P_{15}, P_4)
多邊形15, p_{62}, p_{63}, p_{64}, p_{65}, p_{66} = Polygon(P_{11}, P_9, P_4, P_{19}, P_5)
多邊形16, p_{67}, p_{68}, p_{69}, p_{70}, p_{71} = Polygon(P_4, P_{15}, P_6, P_{20}, P_{19})
多邊形17, p_{72}, p_{73}, p_{74}, p_{75}, p_{76} = Polygon(P_5, P_{19}, P_{20}, P_8, P_{16})
多邊形18, p_{77}, p_{78}, p_{79}, p_{80}, p_{81} = Polygon(P_{14}, P_{16}, P_8, P_{12}, P_7)
多邊形19, p_{82}, p_{83}, p_{84}, p_{85}, p_{86} = Polygon(P_7, P_{18}, P_2, P_{10}, P_{12})
多邊形20, p_{87}, p_{88}, p_{89}, p_{90}, p_{91} = Polygon(P_{13}, P_{15}, P_6, P_{10}, P_2)
多邊形21 = Poly_B5(P_9, P_4, P_{15}, P_{13}, P_1)
多邊形22 = Poly_C5(P_{11}, P_9, P_1, P_{17}, P_3)
多邊形23 = Poly_P5(P_5, P_{19}, P_4, P_9, P_{11})
多邊形24 = Poly_Y5(P_{14}, P_{16}, P_5, P_{11}, P_3)
多邊形25 = Poly_G5(P_{20}, P_6, P_{15}, P_4, P_{19})
多邊形26 = Poly_B5(P_5, P_{16}, P_8, P_{20}, P_{19})
多邊形27 = Poly_Y5(P_2, P_{18}, P_{17}, P_1, P_{13})
多邊形28 = Poly_P5(P_{10}, P_2, P_{13}, P_{15}, P_6)
多邊形29 = Poly_G5(P_{10}, P_{12}, P_7, P_{18}, P_2)
多邊形30 = Poly_R5(P_7, P_{14}, P_3, P_{17}, P_{18})
多邊形31 = Poly_R5(P_{12}, P_{10}, P_6, P_{20}, P_8)
多邊形32 = Poly_C5(P_{12}, P_8, P_{16}, P_{14}, P_7)
e, f = SDLine(P_{11}, P_3, P_1, P_{16})
g, h = SDLine(P_9, P_{11}, P_{17}, P_{19})
i, j = SDLine(P_{11}, P_5, P_{14}, P_4)
k, l = SDLine(P_{13}, P_1, P_{18}, P_4)
m, n = SDLine(P_1, P_9, P_3, P_{13})
p, q = SDLine(P_{15}, P_4, P_1, P_{20})
r, s = SDLine(P_{13}, P_{15}, P_9, P_{10})
t, a_1 = SDLine(P_2, P_{13}, P_{17}, P_6)
b_1, c_1 = SDLine(P_6, P_{15}, P_2, P_{19})
d_1, e_1 = SDLine(P_{10}, P_6, P_{13}, P_8)
f_1, g_1 = SDLine(P_{10}, P_2, P_7, P_{15})
h_1, i_1 = SDLine(P_4, P_9, P_{13}, P_5)
j_1, k_1 = SDLine(P_4, P_{19}, P_{11}, P_{20})
l_1, m_1 = SDLine(P_{12}, P_{10}, P_{18}, P_{20})
n_1, q_1 = SDLine(P_5, P_{16}, P_3, P_{20})
r_1, s_1 = SDLine(P_{14}, P_{16}, P_{12}, P_{11})
t_1, a_2 = SDLine(P_3, P_{14}, P_{18}, P_5)
b_2, c_2 = SDLine(P_7, P_{12}, P_{18}, P_{14})
d_2, e_2 = SDLine(P_{18}, P_2, P_1, P_{12})
f_2, g_2 = SDLine(P_1, P_{17}, P_2, P_{11})
h_2, i_2 = SDLine(P_{17}, P_{18}, P_{13}, P_{14})
j_2, k_2 = SDLine(P_{12}, P_8, P_{20}, P_{16})
l_2, m_2 = SDLine(P_6, P_{20}, P_4, P_{12})
q_2, r_2 = SDLine(P_8, P_{16}, P_{20}, P_7)
s_2, t_2 = SDLine(P_{20}, P_{19}, P_{15}, P_{16})
a_3, b_3 = SDLine(P_8, P_{20}, P_{10}, P_5)
c_3, d_3 = SDLine(P_{17}, P_3, P_{18}, P_9)
e_3, f_3 = SDLine(P_7, P_{18}, P_{14}, P_{12})
g_3, h_3 = SDLine(P_5, P_{19}, P_{16}, P_9)
n_2, p_2 = SDLine(P_7, P_{14}, P_8, P_{17})
A: (Corner[1] + Corner[3]) / 2

Tool: Poly_B5
Input: A, B, C, D, E
Output: poly1'

poly1, a, b, c, d, e = Polygon(A, B, C, D, E)
F = Midpoint(b)
G = Midpoint(d)
α = Angle(G, F, A)
f: sqrt(sgn(sin(α)))
A' = Dilate(A, f, A)
B' = Dilate(B, f, A)
C' = Dilate(C, f, A)
D' = Dilate(D, f, A)
E' = Dilate(E, f, A)
poly1', a', b', c', d', e' = Polygon(A', B', C', D', E')

Tool: Poly_C5
Input: A, B, C, D, E
Output: poly1

poly1 = Poly_B5(A, B, C, D, E)

Tool: Poly_G5
Input: A, B, C, D, E
Output: poly1'

poly1, a, b, c, d, e = Polygon(A, B, C, D, E)
F = Midpoint(b)
G = Midpoint(d)
α = Angle(G, F, A)
f: sqrt(sgn(sin(α)))
A' = Dilate(A, f, A)
B' = Dilate(B, f, A)
C' = Dilate(C, f, A)
D' = Dilate(D, f, A)
E' = Dilate(E, f, A)
poly1', a', b', c', d', e' = Polygon(A', B', C', D', E')

Tool: Poly_P5
Input: A, B, C, D, E
Output: poly1

poly1 = Poly_B5(A, B, C, D, E)

Tool: Poly_R5
Input: A, B, C, D, E
Output: poly1'

poly1, a, b, c, d, e = Polygon(A, B, C, D, E)
F = Midpoint(b)
G = Midpoint(d)
α = Angle(G, F, A)
f: sqrt(sgn(sin(α)))
A' = Dilate(A, f, A)
B' = Dilate(B, f, A)
C' = Dilate(C, f, A)
D' = Dilate(D, f, A)
E' = Dilate(E, f, A)
poly1', a', b', c', d', e' = Polygon(A', B', C', D', E')

Tool: Poly_Y5
Input: A, B, C, D, E
Output: poly1

poly1 = Poly_B5(A, B, C, D, E)

Tool: SDLine
Input: A, B, C, D
Output: g, h

b: sgn(sin(Angle[D, B, A]))
a: sgn(sin(Angle[A, B, C]))
c: sgn(a + b + 0.5)
d: sqrt(c)
e: sqrt(-c)
E = Midpoint(A, B)
A' = Dilate(A, d, E)
B' = Dilate(B, d, E)
g = Segment(A', B')
A'_1 = Dilate(A, e, E)
B'_1 = Dilate(B, e, E)
h = Segment(A'_1, B'_1)