C center

F focal length

H horizon line

A = (3.22, 3.7)
B = (19.12, 3.7)
a = Segment(A, B)
C_1 = (-2.36, 1.7)
D = (19.02, 1.68)
b = Line(C_1, D)
E = (9.759999999999868, -1.56)
F_1 = (8.85999999999988, 0.62)
G = (7.3399999999998995, 1.06)
c = Segment(F_1, G)
d = OrthogonalLine(E, b)
e = Circle(E, Segment[A, B])
f = OrthogonalLine(E, d)
H_1 = Intersect(e, f, 1)
I = Intersect(b, d)
g = Segment(I, H_1)
h = OrthogonalLine(H_1, g)
J = Intersect(d, h)
i = Line(F_1, G)
K = Intersect(b, i)
j = Line(K, J)
k = OrthogonalLine(E, j)
L = Intersect(b, k)
p = Semicircle(K, L)
q = Semicircle(J, K)
M = Intersect(q, k, 1)
N = Intersect(p, d, 1)
l = Line(N, L)
m = Line(N, K)
n, r = AngularBisector(m, l)
O = Intersect(b, n)
s = Line(G, L)
t = Line(F_1, L)
a_1 = Line(F_1, O)
P = Intersect(s, a_1)
b_1 = Line(F_1, J)
c_1 = Line(G, J)
d_1 = Line(M, K)
e_1 = Line(M, J)
f_1, g_1 = AngularBisector(d_1, e_1)
Q = Intersect(j, f_1)
h_1 = Line(Q, F_1)
R = Intersect(c_1, h_1)
i_1 = Line(K, R)
S = Intersect(b_1, i_1)
j_1 = Line(K, P)
T = Intersect(t, j_1)
k_1 = Line(T, J)
l_1 = Line(L, S)
U = Intersect(k_1, l_1)
m_1 = Segment(G, P)
n_1 = Segment(F_1, T)
p_1 = Segment(S, U)
q_1 = Segment(G, R)
r_1 = Segment(F_1, S)
s_1 = Segment(T, U)
t_1 = Segment(R, S)
a_2 = Segment(P, T)
b_2 = Segment(F_1, G)
c_2 = Segment(K, U)
d_2 = Segment(R, L)
V = Intersect(c_2, d_2)
e_2 = Segment(V, U)
f_2 = Segment(V, R)
g_2 = Segment(V, P)
h_2 = Segment(V, U)
W = (73.29999999999924, -12.840000000000325)
Z = (73.99999999999919, -24.100000000000563)
A_1 = (52.45999999999944, -12.840000000000325)
B_1 = (74.11999999999924, -11.920000000000304)
C = (62.499999999999325, -16.4000000000004)
D_1 = (65.69999999999929, -16.5000000000004)
E_1 = (61.419999999999334, -14.98000000000037)
i_2, j_2, k_2, l_2, m_2, n_2, p_2, q_2, r_2, s_2, t_2, f_3 = cubeFHC2C(W, Z, A_1, B_1, C, D_1, E_1)
F = Segment(B_1, Z)
H = Segment(W, A_1)

Tool: cubeFHC2C
Input: A, B, C, D, E, F, G
Output: m_1, n_1, a_2, c, q_1, r_1, s_1, g_2, t_1, f_2, p_1, h_2

b = Line(C, D)
c = Segment(F, G)
d = OrthogonalLine(E, b)
e = Circle(E, Segment[A, B])
f = OrthogonalLine(E, d)
H = Intersect(e, f, 1)
I = Intersect(b, d)
g = Segment(I, H)
h = OrthogonalLine(H, g)
J = Intersect(d, h)
i = Line(F, G)
K = Intersect(b, i)
j = Line(K, J)
k = OrthogonalLine(E, j)
L = Intersect(b, k)
p = Semicircle(K, L)
q = Semicircle(J, K)
M = Intersect(q, k, 1)
N = Intersect(p, d, 1)
l = Line(N, L)
m = Line(N, K)
n, r = AngularBisector(m, l)
O = Intersect(b, n)
s = Line(G, L)
t = Line(F, L)
a_1 = Line(F, O)
P = Intersect(s, a_1)
b_1 = Line(F, J)
c_1 = Line(G, J)
d_1 = Line(M, K)
e_1 = Line(M, J)
f_1, g_1 = AngularBisector(d_1, e_1)
Q = Intersect(j, f_1)
h_1 = Line(Q, F)
R = Intersect(c_1, h_1)
i_1 = Line(K, R)
S = Intersect(b_1, i_1)
j_1 = Line(K, P)
T = Intersect(t, j_1)
k_1 = Line(T, J)
l_1 = Line(L, S)
U = Intersect(k_1, l_1)
m_1 = Segment(G, P)
n_1 = Segment(F, T)
p_1 = Segment(S, U)
q_1 = Segment(G, R)
r_1 = Segment(F, S)
s_1 = Segment(T, U)
t_1 = Segment(R, S)
a_2 = Segment(P, T)
c_2 = Segment(K, U)
d_2 = Segment(R, L)
V = Intersect(c_2, d_2)
f_2 = Segment(V, R)
g_2 = Segment(V, P)
h_2 = Segment(V, U)