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

x

y

z

y

x

z

顯示座標軸

正十二面體的分解

Step 2

Step 3

Step 4

Step 5

Step 6

α = 4.084070449666731 rad (slider from 0*° to 6.283185307179586, step 0.1*°)
β = 1.3962634015954636 rad (slider from 0 to 6.283185307179586, step 0.1*°)
O = (10.828036517729927, 3.0680682390768133)
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 = 2 (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
多邊形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)
A: (Corner[1] + Corner[3]) / 2
c = false
d1 = 0 (slider from 0 to 0.75, step 0.01)
d2 = 0 (slider from 0 to 0.75, step 0.01)
d3 = 0 (slider from 0 to 1.7, step 0.01)
d4 = 0 (slider from 0 to 1.7, step 0.01)
d5 = 0 (slider from 0 to 1.6, step 0.01)
d6 = 0 (slider from 0 to 1.6, step 0.01)
P_{5U}: O - u - v + w + d1 * w
P_{4U}: O - u + v + w + d1 * w
P_{3U}: O + u - v + w + d1 * w
P_{1U}: O + u + v + w + d1 * w
P_{9U}: P_9 + d1 * w
P_{11U}: P_{11} + d1 * w
d = Segment(P_{11U}, P_{9U})
i_3 = Segment(P_{11U}, P_{5U})
j_3 = Segment(P_{9U}, P_{4U})
k_3 = Segment(P_{9U}, P_{1U})
l_3 = Segment(P_{11U}, P_{3U})
m_3 = Segment(P_{3U}, P_{5U})
n_3 = Segment(P_{5U}, P_{4U})
q_3 = Segment(P_{4U}, P_{1U})
r_3 = Segment(P_{1U}, P_{3U})
P_{2D}: P_2 - d2 * w
P_{6D}: P_6 - d2 * w
P_{7D}: P_7 - d2 * w
P_{8D}: P_8 - d2 * w
P_{10D}: P_{10} - d2 * w
P_{12D}: P_{12} - d2 * w
s_3 = Segment(P_{6D}, P_{2D})
t_3 = Segment(P_{2D}, P_{7D})
a_4 = Segment(P_{7D}, P_{8D})
b_4 = Segment(P_{8D}, P_{6D})
c_4 = Segment(P_{2D}, P_{10D})
d_4 = Segment(P_{10D}, P_{12D})
e_4 = Segment(P_{7D}, P_{12D})
f_4 = Segment(P_{12D}, P_{8D})
g_4 = Segment(P_{10D}, P_{6D})
P_{1F}: P_1 + d3 * u
P_{3F}: P_3 + d3 * u
P_{2F}: P_2 + d3 * u
P_{7F}: P_7 + d3 * u
P_{17F}: P_{17} + d3 * u
P_{18F}: P_{18} + d3 * u
h_4 = Segment(P_{1F}, P_{3F})
i_4 = Segment(P_{3F}, P_{7F})
j_4 = Segment(P_{7F}, P_{2F})
k_4 = Segment(P_{2F}, P_{1F})
l_4 = Segment(P_{1F}, P_{17F})
m_4 = Segment(P_{3F}, P_{17F})
n_4 = Segment(P_{17F}, P_{18F})
q_4 = Segment(P_{2F}, P_{18F})
r_4 = Segment(P_{18F}, P_{7F})
P_{4B}: P_4 - d4 * u
P_{5B}: P_5 - d4 * u
P_{6B}: P_6 - d4 * u
P_{8B}: P_8 - d4 * u
P_{19B}: P_{19} - d4 * u
P_{20B}: P_{20} - d4 * u
s_4 = Segment(P_{5B}, P_{4B})
t_4 = Segment(P_{4B}, P_{6B})
a_5 = Segment(P_{6B}, P_{8B})
b_5 = Segment(P_{8B}, P_{5B})
c_5 = Segment(P_{5B}, P_{19B})
d_5 = Segment(P_{19B}, P_{4B})
e_5 = Segment(P_{19B}, P_{20B})
f_5 = Segment(P_{20B}, P_{8B})
g_5 = Segment(P_{20B}, P_{6B})
P_{1R}: P_1 + d5 * v
P_{2R}: P_2 + d5 * v
P_{4R}: P_4 + d5 * v
P_{6R}: P_6 + d5 * v
P_{13R}: P_{13} + d5 * v
P_{15R}: P_{15} + d5 * v
h_5 = Segment(P_{4R}, P_{1R})
i_5 = Segment(P_{1R}, P_{2R})
j_5 = Segment(P_{2R}, P_{6R})
k_5 = Segment(P_{6R}, P_{4R})
l_5 = Segment(P_{4R}, P_{15R})
m_5 = Segment(P_{15R}, P_{6R})
n_5 = Segment(P_{1R}, P_{13R})
q_5 = Segment(P_{13R}, P_{2R})
r_5 = Segment(P_{15R}, P_{13R})
P_{3L}: P_3 - d6 * v
P_{5L}: P_5 - d6 * v
P_{7L}: P_7 - d6 * v
P_{8L}: P_8 - d6 * v
P_{14L}: P_{14} - d6 * v
P_{16L}: P_{16} - d6 * v
s_5 = Segment(P_{3L}, P_{5L})
t_5 = Segment(P_{5L}, P_{8L})
a_6 = Segment(P_{8L}, P_{7L})
b_6 = Segment(P_{7L}, P_{3L})
c_6 = Segment(P_{14L}, P_{16L})
d_6 = Segment(P_{3L}, P_{14L})
e_6 = Segment(P_{14L}, P_{7L})
f_6 = Segment(P_{8L}, P_{16L})
g_6 = Segment(P_{16L}, P_{5L})
Start = 0 (slider from 0 to 1, step 1)
e = Segment(P_1, P_3)
f = Segment(P_1, P_4)
g = Segment(P_4, P_5)
h = Segment(P_3, P_5)
i = Segment(P_6, P_8)
j = Segment(P_2, P_7)
k = Segment(P_2, P_6)
l = Segment(P_7, P_8)
m = Segment(P_1, P_2)
p = Segment(P_5, P_8)
q = Segment(P_4, P_6)
n = 0 (slider from -5 to 5, step 1)
r = Segment(P_3, P_7)
poly1 = Poly_B4(P_1, P_4, P_5, P_3)
poly2 = Poly_R4(P_3, P_7, P_2, P_1)
poly3 = Poly_G4(P_5, P_8, P_7, P_3)
poly4 = Poly_C4(P_4, P_6, P_8, P_5)
poly5 = Poly_P4(P_1, P_2, P_6, P_4)
poly6 = Poly_R4(P_6, P_2, P_7, P_8)
Step = 0

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)

Tool: Poly_B4
Input: A, B, C, D
Output: poly1'

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

Tool: Poly_R4
Input: A, B, C, D
Output: poly1'

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

Tool: Poly_C4
Input: A, B, C, D
Output: poly1

poly1 = Poly_R4(A, B, C, D)

Tool: Poly_P4
Input: A, B, C, D
Output: poly1

poly1 = Poly_R4(A, B, C, D)

Tool: Poly_G4
Input: A, B, C, D
Output: poly1'

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

Tool: Poly_Y4
Input: A, B, C, D
Output: poly1

poly1 = Poly_R4(A, B, C, D)