A - A'

B - B'

C'

C'

G'

F'

E'

Ortogonales

Segunda etapa

Proyecciones

A = Point(Ray[(0, 0), Vector[(1, 0)]])
B = Point(Ray[(0, 0), Vector[(1, 0)]])
T: (x(B), (3 / 2 * Distance[A, B]))
A'' = Point(Ray[((-5 / 4 * Distance[A, B]), 0), Vector[(-1, 0)]])
f = OrthogonalLine(A, xAxis)
g = OrthogonalLine(B, xAxis)
c = Circle(A, B)
C = Intersect(c, f, 1)
h = OrthogonalLine(C, f)
D = Intersect(g, h)
E_2 = Midpoint(A, B)
F_2 = Midpoint(E_2, B)
G_2 = Midpoint(A, E_2)
F = Midpoint(A, C)
E = Midpoint(F, A)
G = Midpoint(F, C)
K = Midpoint(C, D)
L = Midpoint(D, K)
M = Midpoint(K, C)
N_2 = Midpoint(D, B)
O_2 = Midpoint(B, N_2)
P = Midpoint(N_2, D)
i = Segment(A, C)
j = Segment(M, G_2)
k = Segment(E_2, K)
l = Segment(L, F_2)
m = Segment(B, D)
n = Segment(D, C)
p = Segment(G, P)
q = Segment(N_2, F)
r = Segment(E, O_2)
s = Segment(B, A)
t = Ray((-1, 0), Vector[(-1, 0)])
d = Circle(A'', Distance[A, E])
E'' = Intersect(d, t, 1)
F'' = Mirror(A'', E'')
G'' = Mirror(E'', F'')
Q'' = Mirror(F'', A'')
C'' = Mirror(F'', G'')
a = Segment(Q'', C'')
H = Point(Segment[A'', (x(A''), y(T))])
b = OrthogonalLine(A'', xAxis)
e = OrthogonalLine(H, b)
O = Point(Ray[H, Vector[(-1, 0)]])
U = Intersect(f, e)
V = Intersect(g, e)
f_1 = Segment(U, V)
N = Point(f_1)
d_i = Segment(O, H)
h_1 = Segment(H, U)
i_1 = Segment(N, A)
j_1 = Segment(N, G_2)
k_1 = Segment(N, E_2)
l_1 = Segment(N, F_2)
m_1 = Segment(N, B)
n_1 = Segment(O, C'')
p_1 = Segment(O, G'')
q_1 = Segment(O, F'')
r_1 = Segment(O, E'')
s_1 = Segment(H, A'')
C' = Intersect(n_1, s_1)
G' = Intersect(p_1, s_1)
F' = Intersect(q_1, s_1)
E' = Intersect(r_1, s_1)
t_1 = OrthogonalLine(C', s_1)
a_1 = OrthogonalLine(G', s_1)
b_1 = OrthogonalLine(F', s_1)
c_1 = OrthogonalLine(E', s_1)
D_1 = Intersect(t_1, i_1)
E_1 = Intersect(t_1, j_1)
F_1 = Intersect(t_1, k_1)
G_1 = Intersect(t_1, l_1)
D' = Intersect(t_1, m_1)
d_1 = Segment(A, D_1)
e_1 = Segment(G_2, E_1)
f_2 = Segment(F_1, E_2)
g_2 = Segment(F_2, G_1)
h_2 = Segment(D', B)
i_2 = Segment(D_1, N)
j_2 = Segment(E_1, N)
k_2 = Segment(F_1, N)
l_2 = Segment(N, G_1)
m_2 = Segment(N, D')
I_1 = Intersect(f, t_1)
J_1 = Intersect(f, a_1)
K_1 = Intersect(f, b_1)
L_1 = Intersect(f, c_1)
M_1 = Intersect(c_1, d_1)
N_1 = Intersect(b_1, d_1)
O_1 = Intersect(a_1, d_1)
P_1 = Intersect(a_1, h_2)
Q_1 = Intersect(b_1, h_2)
R_1 = Intersect(c_1, h_2)
n_2 = Segment(I_1, D_1)
p_2 = Segment(J_1, O_1)
q_2 = Segment(K_1, N_1)
r_2 = Segment(L_1, M_1)
s_2 = Segment(D_1, D')
t_2 = Segment(O_1, P_1)
a_2 = Segment(N_1, Q_1)
b_2 = Segment(M_1, R_1)
c_2 = Segment(C, B)
d_2 = Segment(D, A)
e_2 = Segment(B, D_1)
f_3 = Segment(A, D')
g_1 = OrthogonalLine(T, g)
I = Intersect(f, g_1)
g_3 = Segment(A, I)
h_3 = Segment(I, T)
i_3 = Segment(T, B)
o = false
u = false
v = false
j_3 = Segment(A, N)
k_3 = Segment(G_2, N)
l_3 = Segment(E_2, N)
m_3 = Segment(F_2, N)
n_3 = Segment(B, N)