密鋪三角形
Author: 牛津大學出版社 2011

1.  拖曳下面三角形上的藍色點
     來改變圖形的形狀。
2.  拖曳右面紅色滑桿把圖形拼砌。

密鋪三角形

牛津大學出版社2012

拼砌

A = (8.308330005556309, -5.373613064089197)
B = (3.372956483782673, -9.603933225609456)
C = (10.940529217168914, -9.697940340309906)
多邊形1, c, a, b = Polygon(A, B, C)
d = 1 (slider from 1 to 24, step 1)
D = Midpoint(A, C)
A' = Rotate(A, 180.0*°, D)
B' = Rotate(B, 180.0*°, D)
C' = Rotate(C, 180.0*°, D)
多邊形1', c'_1, a'_1, b'_1 = Polygon(A', B', C')
E = Midpoint(A, B')
A'' = Rotate(A', 180.0*°, E)
B'' = Rotate(B', 180.0*°, E)
C'' = Rotate(C', 180.0*°, E)
多邊形1'', c'', a'', b'' = Polygon(A'', B'', C'')
F = Midpoint(A, A'')
A''' = Rotate(A'', 180.0*°, F)
B''' = Rotate(B'', 180.0*°, F)
C''' = Rotate(C'', 180.0*°, F)
多邊形1''', c''', a''', b''' = Polygon(A''', B''', C''')
G = Midpoint(C''', A)
H = Rotate(A''', 180.0*°, G)
I = Rotate(B''', 180.0*°, G)
J = Rotate(C''', 180.0*°, G)
多邊形2, j, h, i = Polygon(H, I, J)
K = Midpoint(I, A)
H' = Rotate(H, 180.0*°, K)
I' = Rotate(I, 180.0*°, K)
J' = Rotate(J, 180.0*°, K)
多邊形2', j', h', i' = Polygon(H', I', J')
L = Midpoint(J', B)
H'' = Rotate(H', 180.0*°, L)
I'' = Rotate(I', 180.0*°, L)
J'' = Rotate(J', 180.0*°, L)
多邊形2'', j'', h'', i'' = Polygon(H'', I'', J'')
M = Midpoint(I'', B)
H''' = Rotate(H'', 180.0*°, M)
I''' = Rotate(I'', 180.0*°, M)
J''' = Rotate(J'', 180.0*°, M)
多邊形2''', j''', h''', i''' = Polygon(H''', I''', J''')
N = Midpoint(H''', B)
O = Rotate(H''', 180.0*°, N)
P = Rotate(I''', 180.0*°, N)
Q = Rotate(J''', 180.0*°, N)
多邊形3, q, o, p = Polygon(O, P, Q)
R = Midpoint(B, Q)
O' = Rotate(O, 180.0*°, R)
P' = Rotate(P, 180.0*°, R)
Q' = Rotate(Q, 180.0*°, R)
多邊形3', q', o', p' = Polygon(O', P', Q')
S = Midpoint(C, O')
O'' = Rotate(O', 180.0*°, S)
P'' = Rotate(P', 180.0*°, S)
Q'' = Rotate(Q', 180.0*°, S)
多邊形3'', q'', o'', p'' = Polygon(O'', P'', Q'')
T = Midpoint(C, Q'')
O''' = Rotate(O'', 180.0*°, T)
P''' = Rotate(P'', 180.0*°, T)
Q''' = Rotate(Q'', 180.0*°, T)
多邊形3''', q''', o''', p''' = Polygon(O''', P''', Q''')
U = Midpoint(C, P''')
V = Rotate(O''', 180.0*°, U)
W = Rotate(P''', 180.0*°, U)
Z = Rotate(Q''', 180.0*°, U)
多邊形4, z, v, w = Polygon(V, W, Z)
A_1 = Midpoint(V, Z)
V' = Rotate(V, 180.0*°, A_1)
W' = Rotate(W, 180.0*°, A_1)
Z' = Rotate(Z, 180.0*°, A_1)
多邊形4', z', v', w' = Polygon(V', W', Z')
B_1 = Midpoint(Z', W')
V'' = Rotate(V', 180.0*°, B_1)
W'' = Rotate(W', 180.0*°, B_1)
Z'' = Rotate(Z', 180.0*°, B_1)
多邊形4'', z'', v'', w'' = Polygon(V'', W'', Z'')
C_1 = Midpoint(V'', W'')
V''' = Rotate(V'', 180.0*°, C_1)
W''' = Rotate(W'', 180.0*°, C_1)
Z''' = Rotate(Z'', 180.0*°, C_1)
多邊形4''', z''', v''', w''' = Polygon(V''', W''', Z''')
D_1 = Midpoint(Z''', W''')
E_1 = Rotate(V''', 180.0*°, D_1)
F_1 = Rotate(W''', 180.0*°, D_1)
G_1 = Rotate(Z''', 180.0*°, D_1)
多邊形5, g_1, e_1, f_1 = Polygon(E_1, F_1, G_1)
H_1 = Midpoint(E_1, F_1)
I_1 = Rotate(E_1, 180.0*°, H_1)
J_1 = Rotate(F_1, 180.0*°, H_1)
K_1 = Rotate(G_1, 180.0*°, H_1)
多邊形5', k_1, i_1, j_1 = Polygon(I_1, J_1, K_1)
L_1 = Midpoint(K_1, I_1)
M_1 = Rotate(I_1, 180.0*°, L_1)
N_1 = Rotate(J_1, 180.0*°, L_1)
O_1 = Rotate(K_1, 180.0*°, L_1)
多邊形5'', o_1, m_1, n_1 = Polygon(M_1, N_1, O_1)
P_1 = Midpoint(M_1, N_1)
Q_1 = Rotate(M_1, 180.0*°, P_1)
R_1 = Rotate(N_1, 180.0*°, P_1)
S_1 = Rotate(O_1, 180.0*°, P_1)
多邊形5''', s_1, q_1, r_1 = Polygon(Q_1, R_1, S_1)
T_1 = Midpoint(S_1, Q_1)
U_1 = Rotate(Q_1, 180.0*°, T_1)
V_1 = Rotate(R_1, 180.0*°, T_1)
W_1 = Rotate(S_1, 180.0*°, T_1)
多邊形6, w_1, u_1, v_1 = Polygon(U_1, V_1, W_1)
Z_1 = Midpoint(V_1, W_1)
A_2 = Rotate(U_1, 180.0*°, Z_1)
B_2 = Rotate(V_1, 180.0*°, Z_1)
C_2 = Rotate(W_1, 180.0*°, Z_1)
多邊形6', c_2, a_2, b_2 = Polygon(A_2, B_2, C_2)
D_2 = Midpoint(C_2, A_2)
E_2 = Rotate(A_2, 180.0*°, D_2)
F_2 = Rotate(B_2, 180.0*°, D_2)
G_2 = Rotate(C_2, 180.0*°, D_2)
多邊形6'', g_2, e_2, f_2 = Polygon(E_2, F_2, G_2)
H_2 = Midpoint(F_2, G_2)
I_2 = Rotate(E_2, 180.0*°, H_2)
J_2 = Rotate(F_2, 180.0*°, H_2)
K_2 = Rotate(G_2, 180.0*°, H_2)
多邊形6''', k_2, i_2, j_2 = Polygon(I_2, J_2, K_2)
L_2 = Midpoint(K_2, I_2)

Tool: 三角形
Input: A, B, C, D
Output: 多邊形2, 多邊形1', A', B', C', E, F, G

A'_1 = Rotate(A, 180.0*°, C)
B'_1 = Rotate(B, 180.0*°, C)
C'_1 = Rotate(C, 180.0*°, C)
u = Vector(A, D)
A'_2 = Translate(A, u)
A' = Translate(A, u)
B'_2 = Translate(B, u)
B' = Translate(B, u)
C'_2 = Translate(C, u)
C' = Translate(C, u)
多邊形1', c'_1, a'_1, b'_1 = Polygon(A', B', C')
v = Vector(A'_1, C')
E_1 = Translate(A'_1, v)
E = Translate(A'_1, v)
F_1 = Translate(B'_1, v)
F = Translate(B'_1, v)
G_1 = Translate(C'_1, v)
G = Translate(C'_1, v)
多邊形2, g, e_1, f = Polygon(E, F, G)