Teorema de Desargues
Author: Armando Maccori e Paulo Leite

O = (11.48, 4.96)
B = (9.86, -8.42)
a = Ray(O, B)
A = (-0.58, -8.4)
b = Ray(O, A)
C = (5.4, -6.6000000000000005)
c = Ray(O, C)
poly1, c_1, a_1, b_1 = Polygon(A, B, C)
A' = Point(b)
C' = Point(c)
B' = Point(a)
poly2, c', a', b' = Polygon(A', B', C')
d = Ray(A, B)
e = Ray(A, C)
f = Ray(C, B)
g = Ray(A', B')
h = Ray(A', C')
i = Ray(C', B')
R = Intersect(e, h)
Q = Intersect(d, g)
P = Intersect(f, i)
j = Line(P, R)
D = Point(j)
k = Line(D, c_1)
l = Line(D, c')
E = Point(k)
m = Line(E, j)
F = Point(l)
n = Line(F, m)
G = Point(n)
p = Ray(F, G)
q = Line(G, k)
H = Point(q)
r = Segment(G, H)
I = Point(j)
s = Segment(H, I)
J = Intersect(l, n)
t = Segment(J, D)
d_1 = Segment(F, G)
K = Point(m)
e_1 = Line(K, k)
L = Intersect(e_1, t)
f_1 = Segment(K, L)
g_1 = Segment(E, K)
h_1 = Segment(E, D)
i_1 = Segment(D, I)
M = Intersect(b, t)
N = Intersect(c, t)
S = Intersect(e, t)
T = Intersect(a, t)
U = Intersect(d, t)
V = Intersect(f, t)
j_1 = Segment(A', R)
k_1 = Segment(A', Q)
l_1 = Segment(C', P)
m_1 = Segment(O, A')
n_1 = Segment(A', M)
p_1 = Segment(M, A)
q_1 = Segment(O, C')
r_1 = Segment(C', N)
s_1 = Segment(N, C)
t_1 = Segment(O, B')
a_2 = Segment(B', T)
b_2 = Segment(T, B)
c_2 = Segment(A, C)
d_2 = Segment(C, S)
e_2 = Segment(S, R)
f_2 = Segment(C, B)
g_2 = Segment(B, V)
h_2 = Segment(V, P)
i_2 = Segment(A, B)
j_2 = Segment(B, U)
k_2 = Segment(U, Q)