π

E_0

E_1

E_2

U

U_\infty

U'

\overrightarrow{u'}

E_0'

\overrightarrow{e_1'}

\overrightarrow{e_2'}

l_\infty

C

\rho

\rho'

\pi

a

k_\infty'

U_1'

U_2'

U_1

U_2

b: x = 0
ρ: z = 0
a = IntersectPath(b, ρ)
E_1 = PointIn(b)
l_∞ = Line(E_1, a)
E_2 = Point(l_∞)
ρ' = Plane(E_1, ρ)
E_0 = PointIn(b)
D = Midpoint(E_2, E_1)
h = OrthogonalLine(D, ρ')
d = Circle(h, E_1)
poly1, c_1, a_1, b_1 = Polygon(E_0, E_1, E_2)
U = PointIn(poly1)
i = Line(E_0, U)
U_∞ = Intersect(i, a_1)
q_1 = Segment(E_0, U_∞)
j = OrthogonalLine(E_2, b)
k, l = AngularBisector(j, l_∞)
A = Midpoint(E_2, U_∞)
m = OrthogonalLine(A, b)
B = Intersect(k, m)
n = OrthogonalLine(B, ρ')
e = Circle(n, U_∞)
C = Intersect(d, e, 2)
d_2 = CircumcircleArc(E_2, C, E_1)
c_2 = CircumcircleArc(E_2, C, U_∞)
t_1 = Ray(C, E_1)
d_1 = Ray(C, E_2)
e_1 = Ray(C, U_∞)
p = Ray(C, U)
q = Ray(C, E_0)
E'_0 = Intersect(q, ρ)
U' = Intersect(p, ρ)
k_1 = Ray(E'_0, U')
G = Intersect(l_∞, e, 2)
r = Line(E_2, U)
s = Line(E_1, U)
U_1 = Intersect(r, c_1)
U_2 = Intersect(s, b_1)
t = Segment(E_2, U_1)
f_1 = Segment(E_1, U_2)
g_1 = Ray(C, U_1)
h_1 = Ray(C, U_2)
U'_2 = Intersect(h_1, ρ)
U'_1 = Intersect(g_1, ρ)
i_1 = Ray(E'_0, U'_1)
j_1 = Ray(E'_0, U'_2)
l_1 = Segment(U_∞, U_1)
K = Intersect(l_1, f_1)
m_1 = Line(E_2, K)
N = Intersect(m_1, c_1)
n_1 = Segment(U_2, U_∞)
O = Intersect(n_1, t)
p_1 = Line(E_1, O)
P = Intersect(p_1, m_1)
Q = Intersect(p_1, b_1)
r_1 = Segment(E_1, Q)
s_1 = Segment(E_2, N)
f_2 = Ray(C, N)
g_2 = Ray(C, N)
h_2 = Ray(C, Q)
i_2 = Ray(C, O)
j_2 = Ray(C, P)
k_2 = Ray(C, K)
R = Intersect(g_2, ρ)
S = Intersect(h_2, ρ)
T = Intersect(k_2, ρ)
U_3 = Intersect(i_2, ρ)
V = Intersect(j_2, ρ)
l_2 = Ray(U'_1, T)
m_2 = Ray(U'_2, U_3)
n_2 = Ray(U'_1, U')
p_2 = Ray(R, T)
q_2 = Ray(U'_2, U')
r_2 = Ray(S, U_3)
W = Point(i_1)
Z = Point(j_1)
poly2, w, z_1, e_2 = Polygon(Z, E'_0, W)
s_2 = OrthogonalLine(C, ρ)
A_1 = Intersect(s_2, ρ)
k'_∞ = Line(A_1, a)