Tassellazione semiregolare del piano usando  2 dodecagoni e 1 triangolo per vertice

A = (2.2639864802261918, 4.415332474168565)
B = (2.4148602177453773, 4.690455171997669)
poly1, a, b, c, d, e, f, g, h, i, j, k, l, C, D, E, F, G, H, I, J, K, L = Polygon(A, B, 12)
poly2, m, n, p, M = Polygon(F, E, 3)
poly3, q, r, s, N = Polygon(H, G, 3)
poly4, o, a_1, b_1, O = Polygon(J, I, 3)
poly5, t, c_1, d_1, P = Polygon(L, K, 3)
poly6, e_1, f_1, g_1, Q = Polygon(B, A, 3)
poly7, h_1, i_1, j_1, R = Polygon(D, C, 3)
poly8, k_1, l_1, m_1, n_1, u, v, w, z, t_1, a_2, b_2, c_2, S, T, U, V, W, Z, A_1, B_1, C_1, D_1 = Polygon(E, D, 12)
poly9, p_1, q_1, r_1, s_1, d_2, e_2, f_2, g_2, h_2, i_2, j_2, k_2, E_1, F_1, G_1, H_1, I_1, J_1, K_1, L_1, M_1, N_1 = Polygon(G, F, 12)
poly10, l_2, m_2, o_1, p_2, q_2, r_2, s_2, t_2, u_1, v_1, w_1, z_1, O_1, P_1, Q_1, R_1, S_1, T_1, U_1, V_1, W_1, Z_1 = Polygon(I, H, 12)
poly11, n_2, a_3, b_3, c_3, d_3, e_3, f_3, g_3, h_3, i_3, j_3, k_3, A_2, B_2, C_2, D_2, E_2, F_2, G_2, H_2, I_2, J_2 = Polygon(K, J, 12)
poly12, l_3, m_3, n_3, p_3, q_3, r_3, o_2, t_3, a_4, b_4, c_4, d_4, K_2, L_2, M_2, N_2, O_2, P_2, Q_2, R_2, S_2, T_2 = Polygon(A, L, 12)
poly13, s_3, e_4, u_2, v_2, w_2, z_2, j_4, k_4, l_4, m_4, n_4, p_4, U_2, V_2, W_2, Z_2, A_3, B_3, C_3, D_3, E_3, F_3 = Polygon(C, B, 12)
α = Angle(E, F, M)
β = Angle(G, F, E)
γ = Angle(M, F, G)

Tool: Circocerchio
Clicca sul triangolo
Input: poly1
Output: p, T

A = (-4.221655823828217, 0.2573952157720354)
B = (-6.409212927818962, -0.8940157728338809)
C = (-5.616576067409749, -3.37139259388696)
poly1, c, a, b = Polygon(A, B, C)
j = LineBisector(a)
l = LineBisector(c)
T = Intersect(j, l)
p = Circle(T, B)

Tool: Circonferenza inscrita (command Circonferenzainscrita)
Clicca sui vertici del triangolo
Input: N, P, Q
Output: c_1, R

poly2, q_1, n_1, p_1 = Polygon(N, P, Q)
r = AngularBisector(N, Q, P)
s = AngularBisector(P, N, Q)
R = Intersect(r, s)
t = OrthogonalLine(R, p_1)
S = Intersect(t, p_1)
c_1 = Circle(R, S)

Tool: Ortocentro
Clicca sui vertici del triangolo
Input: E_1, F_1, G_1
Output: H_1

j_1 = Line(F_1, G_1)
l_1 = Line(G_1, E_1)
m_1 = OrthogonalLine(F_1, l_1)
n_1 = OrthogonalLine(E_1, j_1)
H_1 = Intersect(m_1, n_1)

Tool: Excerchi
Clicca su 3 rette che determinano un triangolo
Input: b, c, a
Output: p, E, D, F, q, r

d, e = AngularBisector(a, c)
f, g = AngularBisector(b, c)
h, i = AngularBisector(a, b)
D = Intersect(h, d)
E = Intersect(d, f)
F = Intersect(f, h)
j = OrthogonalLine(D, a)
k = OrthogonalLine(E, c)
l = OrthogonalLine(F, b)
G = Intersect(b, l)
H = Intersect(k, c)
I = Intersect(j, a)
p = Circle(E, H)
q = Circle(F, G)
r = Circle(D, I)

Tool: Tr. Equil. su lato (command Treqlato)
Clicca sugli estremi in verso orario
Input: A, C
Output: poly2, a_1, c_1, D, d_1

d = Circle(C, A)
e = Circle(A, C)
D = Intersect(d, e, 2)
poly2, c_1, a_1, d_1 = Polygon(A, D, C)

Tool: Rapporto aureo (command Rapportoaureo)
Clicca sugli estremi del segmento
Input: A, B
Output: E

a = Segment(A, B)
b = OrthogonalLine(B, a)
M = Midpoint(a)
c = Circle(B, M)
C = Intersect(c, b, 2)
d = Segment(C, A)
e = Circle(C, B)
D = Intersect(e, d, 1)
f = Circle(A, D)
E = Intersect(f, a, 1)