Points mobiles : M, A, B

O = Intersect(yAxis, zAxis)
O' = (0, 0, 7)
C = Point(xAxis)
d = OrthogonalLine(C, xOyPlane)
M = Point(d)
e = Plane(M, xOyPlane)
G = Intersect(zAxis, e)
i = Segment(C, O)
j = Segment(M, G)
k = Segment(C, M)
b = Segment(O, O')
a = Segment(O', G)
A = (-0.08634723558493462, -4.001745198197014, 0)
c = Segment(O, A)
f, g, h, l = Cylinder(O, O', c)
p = Circle(b, G)
q = IntersectPath(e, f)
Corner(q)
B = Point(g)
m = Segment(O, B)
n = Line(B, b)
r = Line(G, m)
s = Line(O', m)
D = Intersect(s, n)
t = Segment(O', D)
poly1, o, b_1, d_1, o' = Polygon(O, B, D, O')
E = Intersect(r, b_1)
a_1 = Segment(G, E)