Author: Daniel Mentrard

C = (-4.827633554152363, 6.16153446465817)
k = Line(C, xAxis)
E = Point(k)
A = (-4.536481407588367, 0.024943067847803348)
d = Circle(A, 0.2)
ya: y(A)
sintheta: sin(ya)
xa: x(A)
cosphi: cos(xa)
a = OrthogonalLine(A, yAxis)
b = OrthogonalLine(A, xAxis)
sinphi: sin(xa)
c: cos(ya)
costheta: cos(ya)
B = Intersect(xAxis, yAxis)
distanceAE = Distance(C, E)
D: (0.0, distanceAE * costheta)
Y: (distanceAE * cosphi, distanceAE * sinphi * sintheta)
xy: -(distanceAE) * cosphi * sintheta
X: (distanceAE * sinphi, xy)
u = Vector(B, X)
v = Vector(B, Y)
w = Vector(B, D)
O = (7.624719791200062, 1.480703800667781)
P = Translate(O, u)
Q = Translate(P, v)
R = Translate(Q, w)
S = Mirror(R, O)
T = Mirror(R, Q)
U = Mirror(T, P)
V = Mirror(R, P)
W = Mirror(U, O)
Z = Mirror(T, O)
A1 = Mirror(V, O)
n = Segment(T, W)
p = Segment(W, A1)
r = Segment(A1, R)
s = Segment(R, T)
B1 = facecachée3points(W, S, Z)
poly8, e2, f2, g2, h2_1 = fachequadrlatèrecachée(R, A1, W, T)
F = (4.300406066442733, -4.543872347938431)
G = (8.978224753652508, -4.543872347938431)
g = Segment(F, G)
H = Point(g)
distanceFH = Distance(F, H)
TexteFH: "\overline{" + (Name[F]) + (Name[H]) + "} \, = \, " + distanceFH
coef: distanceFH / g
I = Mirror(V, W)
J = Mirror(V, S)
K = Mirror(V, T)
poly1, i, j, v_1, k_1 = Polygon(I, J, V, K)
e1 = Segment(W, I)
L = Midpoint(e1)
M = Midpoint(L, I)
N = Midpoint(i)
D1 = Midpoint(j)
E1 = Midpoint(k_1)
F1 = Midpoint(v_1)
g1 = Conic(M, N, D1, F1, E1)
h1 = Segment(D1, N)
h2: coef * h1
k2 = Circle(S, h2)
z = Vector(W, A1)
G1 = Intersect(k2, h1, 1.0)
i1 = Ray(W, G1)
H1 = Intersect(g1, i1, 1.0)
I1 = Translate(H1, z)
poly3, i1_1, h1_1, w_1, a1_2 = Polygon(I1, H1, W, A1)
u1 = Vector(W, T)
v1 = Vector(W, H1)
p2 = Translate(g1, v1)
q2 = Translate(g1, u1)
w1 = Vector(S, H1)
J1 = Translate(V, w1)
K1 = Translate(J1, z)
L1 = Intersect(p2, i1, 2.0)
distanceJ1L1 = Distance(J1, L1)
TexteJ1L1: "\overline{" + (Name[J1]) + (Name[L1]) + "} \, = \, " + distanceJ1L1
h = Ray(J1, L1)
o: coef * distanceJ1L1
r2 = Circle(J1, o)
M1 = Intersect(r2, h, 1.0)
i2 = Ray(H1, M1)
N1 = Intersect(p2, i2, 1.0)
O1 = Translate(N1, z)
poly10, i1_3, o1, n1_1, h1_3 = Polygon(I1, O1, N1, H1)
P1 = Mirror(Z, S)
Q1 = Mirror(P1, W)
R1 = Mirror(Z, W)
poly9, z_1, p1_1, r1_1, q1_1 = Polygon(Z, P1, R1, Q1)
S1 = Midpoint(p1_1)
U1 = Midpoint(r1_1)
V1 = Midpoint(W, R1)
W1 = Midpoint(V1, R1)
s2 = Conic(A1, D1, S1, W1, U1)
distanceD1S1 = Distance(D1, S1)
TexteD1S1: "\overline{" + (Name[D1]) + (Name[S1]) + "} \, = \, " + distanceD1S1
j2 = Ray(D1, S1)
o2: coef * distanceD1S1
t2 = Circle(D1, o2)
Z1 = Intersect(t2, j2, 1.0)
l2 = Ray(W, Z1)
A2 = Intersect(s2, l2, 1.0)
B2 = Translate(A2, u1)
poly11, a2_1, b2_1, f1_1, w_2 = Polygon(A2, B2, F1, W)
c3 = Translate(s2, z)
C2 = Translate(A1, z)
distanceZC2 = Distance(Z, C2)
TexteZC2: "\overline{" + (Name[Z]) + (Name[C2]) + "} \, = \, " + distanceZC2
o3: coef * distanceZC2
m2 = Ray(Z, C2)
d3 = Circle(Z, o3)
D2 = Intersect(d3, m2, 1.0)
n2 = Ray(A1, D2)
E2 = Intersect(c3, n2, 1.0)
F2 = Translate(E2, u1)
poly12, a1_3, r_1, f2_1, e2_1 = Polygon(A1, R, F2, E2)
G2 = Translate(T, u1)
distanceVG2 = Distance(V, G2)
TexteVG2: "\overline{" + (Name[V]) + (Name[G2]) + "} \, = \, " + distanceVG2
o4: coef * distanceVG2
a3 = Ray(V, G2)
e3 = Circle(V, o4)
H2 = Intersect(e3, a3, 1.0)
b3 = Ray(F1, H2)
I2 = Intersect(q2, b3, 1.0)
J2 = Translate(I2, z)
poly13, j2_1, i2_1, f1_2, r_2 = Polygon(J2, I2, F1, R)
e = Segment(C, E)

Tool: face cachée 3 points (command facecachée3points)
Input: F, G, H
Output: J

g = Ray(F, G)
F' = Rotate(F, 90.0*°, F)
G' = Rotate(G, 90.0*°, F)
h = Ray(F', G')
i = OrthogonalLine(H, h)
I = Intersect(h, i)
j = OrthogonalLine(I, g)
J = Intersect(g, j)

Tool: fache quadrlatère cachée (command fachequadrlatèrecachée)
Input: D1, E1, F1, G1
Output: poly3, e1, i1, g1, h1

H1 = facecachée3points(D1, G1, F1)
I1 = facecachée3points(F1, E1, D1)
poly3, h1, g1, i1, e1 = Polygon(H1, G1, I1, E1)