O = Intersect(yAxis, xAxis)
E = Point(Ray[O, Vector[(0, 0, 1)]])
a = Plane(E, xOyPlane)
N = PointIn(a)
g = OrthogonalLine(E, Segment[E, N], a)
c = Circle(E, N, a)
G_1, H_1 = Intersect(g, c)
h = Semicircle(G_1, H_1, a)
I = Point(Ray[O, Vector[(0, 0, -1)]])
f = Segment(I, E)
b = Plane(I, xOyPlane)
d = Plane(O, b)
Q = Point(h)
P = Point(h)
polígono1, d_1, e, f_1 = Polygon(P, Q, N)
i = Line(N, O)
j = Line(P, O)
k = Line(Q, O)
H = Intersect(j, b)
F = Intersect(k, b)
G = Intersect(i, b)
polígono2, k_1, i_1, j_1 = Polygon(H, F, G)
l = Segment(H, P)
m = Segment(N, G)
n = Segment(F, Q)