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

x

y

z

α = 1.1309733552923256 rad (slider from 0 to 6.283185307179586, step 0.1*°)
β = 0 rad (slider from 0 to 6.283185307179586, step 0.1*°)
O = (10.760039885873807, 3.036489551361872)
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 = 1 (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
φ = 1.618033988749895
P_1: O + v + φ * w
P_2: O + v - φ * w
P_3: O - v + φ * w
P_4: O - v - φ * w
P_5: O + u + φ * v
P_6: O + u - φ * v
P_7: O - u + φ * v
P_8: O - u - φ * v
P_{10}: O + φ * u - w
P_9: O + φ * u + w
P_{11}: O - φ * u + w
P_{12}: O - φ * u - w
多邊形1, p_1, p_3, p_4, p_2 = Polygon(P_1, P_3, P_4, P_2)
多邊形2, p_5, p_6, p_8, p_7 = Polygon(P_5, P_6, P_8, P_7)
多邊形3, p_9, p_{10}, p_{12}, p_{11} = Polygon(P_9, P_{10}, P_{12}, P_{11})
多邊形4, p_{13}, p_{14}, p_{15} = Polygon(P_3, P_9, P_1)
多邊形5, p_{16}, p_{17}, p_{18} = Polygon(P_3, P_1, P_{11})
多邊形6, p_{19}, p_{20}, p_{21} = Polygon(P_1, P_7, P_{11})
多邊形7, p_{22}, p_{23}, p_{24} = Polygon(P_1, P_9, P_5)
多邊形8, p_{25}, p_{26}, p_{27} = Polygon(P_1, P_5, P_7)
多邊形9, p_{28}, p_{29}, p_{30} = Polygon(P_3, P_6, P_9)
多邊形10, p_{31}, p_{32}, p_{33} = Polygon(P_3, P_{11}, P_8)
多邊形11, p_{34}, p_{35}, p_{36} = Polygon(P_3, P_8, P_6)
多邊形12, p_{37}, p_{38}, p_{39} = Polygon(P_{11}, P_{12}, P_8)
多邊形13, p_{40}, p_{41}, p_{42} = Polygon(P_{11}, P_7, P_{12})
多邊形14, p_{43}, p_{44}, p_{45} = Polygon(P_9, P_6, P_{10})
多邊形15, p_{46}, p_{47}, p_{48} = Polygon(P_9, P_{10}, P_5)
多邊形16, p_{49}, p_{50}, p_{51} = Polygon(P_2, P_7, P_5)
多邊形17, p_{52}, p_{53}, p_{54} = Polygon(P_4, P_6, P_8)
多邊形18, p_{55}, p_{56}, p_{57} = Polygon(P_2, P_5, P_{10})
多邊形19, p_{58}, p_{59}, p_{60} = Polygon(P_2, P_7, P_4)
多邊形20, p_{61}, p_{62}, p_{63} = Polygon(P_4, P_2, P_{10})
多邊形21, p_{64}, p_{65}, p_{66} = Polygon(P_4, P_{12}, P_{10})
多邊形22, p_{67}, p_{68}, p_{69} = Polygon(P_2, P_{12}, P_4)
多邊形23 = Poly_C3(P_{11}, P_1, P_3)
多邊形24 = Poly_P3(P_{11}, P_3, P_8)
多邊形25 = Poly_Y3(P_{11}, P_7, P_1)
多邊形26 = Poly_G3(P_{12}, P_{11}, P_8)
多邊形27 = Poly_R3(P_{12}, P_7, P_{11})
多邊形28 = Poly_B31(P_2, P_7, P_{12})
多邊形29 = Poly_C3(P_4, P_{12}, P_8)
多邊形30 = Poly_Y3(P_4, P_8, P_6)
多邊形31 = Poly_R3(P_8, P_3, P_6)
多邊形32 = Poly_B31(P_6, P_3, P_9)
多邊形33 = Poly_G3(P_3, P_1, P_9)
多邊形34 = Poly_P3(P_1, P_7, P_5)
多邊形35 = Poly_B31(P_1, P_5, P_9)
多邊形36 = Poly_G3(P_5, P_7, P_2)
多邊形37 = Poly_Y3(P_5, P_2, P_{10})
多邊形38 = Poly_R3(P_9, P_5, P_{10})
多邊形39 = Poly_P3(P_{12}, P_4, P_2)
多邊形40 = Poly_Y3(P_{10}, P_6, P_9)
多邊形41 = Poly_G3(P_4, P_6, P_{10})
多邊形42 = Poly_C3(P_4, P_{10}, P_2)
c, e = SDLine(P_7, P_2, P_{12}, P_5)
f, g = SDLine(P_{12}, P_2, P_4, P_7)
h, i = SDLine(P_{11}, P_{12}, P_8, P_7)
j, k = SDLine(P_{11}, P_7, P_{12}, P_1)
l, m = SDLine(P_7, P_5, P_2, P_1)
n, p = SDLine(P_1, P_7, P_{11}, P_5)
q, r = SDLine(P_3, P_{11}, P_8, P_1)
s, t = SDLine(P_3, P_1, P_{11}, P_9)
a_1, b_1 = SDLine(P_{11}, P_1, P_7, P_3)
c_1, d_1 = SDLine(P_8, P_{11}, P_{12}, P_3)
e_1, f_1 = SDLine(P_8, P_{12}, P_4, P_{11})
g_1, h_1 = SDLine(P_{12}, P_4, P_8, P_2)
i_1, j_1 = SDLine(P_3, P_9, P_1, P_6)
k_1, l_1 = SDLine(P_8, P_3, P_{11}, P_6)
m_1, n_1 = SDLine(P_6, P_9, P_3, P_{10})
q_1, r_1 = SDLine(P_6, P_{10}, P_9, P_4)
s_1, t_1 = SDLine(P_4, P_6, P_8, P_{10})
a_2, b_2 = SDLine(P_4, P_{10}, P_6, P_2)
c_2, d_2 = SDLine(P_{10}, P_9, P_6, P_5)
e_2, f_2 = SDLine(P_2, P_{10}, P_4, P_5)
g_2, h_2 = SDLine(P_2, P_5, P_{10}, P_7)
i_2, j_2 = SDLine(P_4, P_2, P_{10}, P_{12})
k_2, l_2 = SDLine(P_8, P_4, P_6, P_{12})
m_2, n_2 = SDLine(P_{10}, P_5, P_9, P_2)
q_2, r_2 = SDLine(P_9, P_1, P_3, P_5)
s_2, t_2 = SDLine(P_6, P_8, P_4, P_3)
a_3, b_3 = SDLine(P_1, P_5, P_7, P_9)
c_3, d_3 = SDLine(P_7, P_{12}, P_{11}, P_2)
e_3, f_3 = SDLine(P_3, P_6, P_9, P_8)
d, g_3 = SDLine(P_5, P_9, P_{10}, P_1)
A_c: (Corner[1] + Corner[3]) / 2

Tool: Poly_B3
Input: A, B, C
Output: poly1'

α = Angle(C, B, A)
d: sqrt(sgn(sin(α)))
A' = Dilate(A, d, A)
B' = Dilate(B, d, A)
C' = Dilate(C, d, A)
poly1', c', a', b' = Polygon(A', B', C')

Tool: Poly_C3
Input: A, B, C
Output: poly1

poly1 = Poly_B3(A, B, C)

Tool: Poly_G3
Input: A, B, C
Output: poly1'

α = Angle(C, B, A)
d: sqrt(sgn(sin(α)))
A' = Dilate(A, d, A)
B' = Dilate(B, d, A)
C' = Dilate(C, d, A)
poly1', c', a', b' = Polygon(A', B', C')

Tool: Poly_P3
Input: A, B, C
Output: poly1

poly1 = Poly_B3(A, B, C)

Tool: Poly_R3
Input: A, B, C
Output: poly1'

α = Angle(C, B, A)
d: sqrt(sgn(sin(α)))
A' = Dilate(A, d, A)
B' = Dilate(B, d, A)
C' = Dilate(C, d, A)
poly1', c', a', b' = Polygon(A', B', C')

Tool: Poly_Y3
Input: A, B, C
Output: poly1

poly1 = Poly_B3(A, B, C)

Tool: Poly_B3 (command Poly_B31)
Input: A, B, C
Output: poly1'

α = Angle(C, B, A)
d: sqrt(sgn(sin(α)))
A' = Dilate(A, d, A)
B' = Dilate(B, d, A)
C' = Dilate(C, d, A)
poly1', c', a', b' = Polygon(A', B', C')

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)