Drucker_Moses_Inellipse

\text{\bold{\textcolor{red}{inellipse centered at X(10) }}\

The inellipse with center X(10), \
of which the perspector is X(75), \
here named the Drucker-Moses inellipse. \
1) This inellipse passes through X(i) for i = \
    244, 1099, 1109, 1111, 4712, \
    X(4712) is the antipode of X(1111)\
2) X(72488) also lies on this inellipse  \
X(72488) lies on these lines: \
10, 1099 ; 200, 643 ; 323, 3935\
3) X(3935) lies on these lines:\
    1, 2 ; 44, 765 ; 55, 1776 ; 72, 1005\
4) X(3935) = inverse of X(2), in-circumconic\
centered-at-X(1) \
\vspace{1.5cm}
Geogebra contributed by René Drucker, june 2026.\ 
}}}

Position(M,Séquence(TriangleCentre(A,B,C,n),n,1,5000))
X_{n}=TriangleCentre(A, B, C, n)
polar conjugate = 48-isoconjugate
X(30)X(511) is a line at infinity
\overrightarrow{X(782)}

Schiffler point

A: (8.217337950869762, 4.143726887644922)
B = (4.1209896717713494, 0.787763910339592)
C = (10.523926074244796, 0.8704052506859353)
a = Segment(B, C)
b = Segment(C, A)
c = Segment(A, B)
a' = Line(B, C)
b' = Line(C, A)
c' = Line(A, B)
G_e = TriangleCenter(A, B, C, 7)
G = TriangleCenter(A, B, C, 2)
O = TriangleCenter(A, B, C, 3)
H = TriangleCenter(A, B, C, 4)
N_9 = TriangleCenter(A, B, C, 5)
L_e = TriangleCenter(A, B, C, 6)
N_{ag} = TriangleCenter(A, B, C, 8)
M_{it} = TriangleCenter(A, B, C, 9)
S_p = TriangleCenter(A, B, C, 10)
F_{eu} = TriangleCenter(A, B, C, 11)
F_{er} = TriangleCenter(A, B, C, 13)
S_{ch} = TriangleCenter(A, B, C, 21)
X_{14} = TriangleCenter(A, B, C, 1)
c_I = Incircle(A, B, C)
c_O = Circle(A, B, C)
M_A = Midpoint(B, C)
M_B = Midpoint(C, A)
M_C = Midpoint(A, B)
c_9 = Circle(M_A, M_B, M_C)
b_a = LineBisector(B, C)
b_b = LineBisector(A, C)
b_c = LineBisector(B, A)
bi_A = AngularBisector(B, A, C)
bi_B = AngularBisector(A, B, C)
bi_C = AngularBisector(B, C, A)
be_A = OrthogonalLine(A, bi_A)
be_B = OrthogonalLine(B, bi_B)
be_C = OrthogonalLine(C, bi_C)
H_A = ClosestPoint(a', A)
H_B = ClosestPoint(b', B)
H_C = ClosestPoint(c', C)
A_H = Midpoint(A, H)
B_H = Midpoint(B, H)
C_H = Midpoint(C, H)
Ie_A = Intersect(be_C, be_B)
Ie_B = Intersect(be_C, be_A)
Ie_C = Intersect(be_A, be_B)
Te_B = ClosestPoint(b', Ie_B)
Te_C = ClosestPoint(c', Ie_C)
Te_A = ClosestPoint(a', Ie_A)
I = TriangleCenter(A, B, C, 1)
Ti_A = ClosestPoint(a', I)
Ti_B = ClosestPoint(b', I)
Ti_C = ClosestPoint(c', I)
ce_A = Circle(Ie_A, Te_A)
ce_B = Circle(Ie_B, Te_B)
ce_C = Circle(Ie_C, Te_C)
h_A = Line(A, H)
h_B = Line(B, H)
h_C = Line(C, H)
h'_A = Line(H_B, H_C)
h'_B = Line(H_A, H_C)
h'_C = Line(H_B, H_A)
m_A = Line(A, M_A)
m_B = Line(B, M_B)
m_C = Line(C, M_C)
t'i_a = Line(Ti_B, Ti_C)
t'i_b = Line(Ti_A, Ti_C)
t'i_ca = Line(Ti_B, Ti_A)
t_A = Tangent(A, c_O)
t_B = Tangent(B, c_O)
t_C = Tangent(C, c_O)
α = Angle(B, A, C)
β = Angle(C, B, A)
γ = Angle(A, C, B)
obtu = If(Max[{α, β, γ}] > pi / 2, 1, 0)
pos_I = IndexOf(I, Sequence[TriangleCenter[A, B, C, n], n, 1, 5000])
Δ = Area(A, B, C)
S: (2 * Δ)
S_A: (b^(2) - a^(2) + c^(2)) / 2
S_B: (a^(2) - b^(2) + c^(2)) / 2
S_C: (b^(2) - c^(2) + a^(2)) / 2
R: (((a * b) * c)) / ((2 * S))
ω = BrocardAngle(A, B, C)
S_ω: (S * cot(ω))
X_{12} = TriangleCenter(A, B, C, 12)
X_{13} = TriangleCenter(A, B, C, 13)
X_{15} = TriangleCenter(A, B, C, 15)
X_{16} = TriangleCenter(A, B, C, 16)
X_{17} = TriangleCenter(A, B, C, 17)
X_{18} = TriangleCenter(A, B, C, 18)
X_{19} = TriangleCenter(A, B, C, 19)
X_{20} = TriangleCenter(A, B, C, 20)
X_{22} = TriangleCenter(A, B, C, 22)
X_{31} = TriangleCenter(A, B, C, 31)
X_{32} = TriangleCenter(A, B, C, 32)
X_{33} = TriangleCenter(A, B, C, 33)
X_{34} = TriangleCenter(A, B, C, 34)
X_{35} = TriangleCenter(A, B, C, 35)
X_{36} = TriangleCenter(A, B, C, 36)
X_{40} = TriangleCenter(A, B, C, 40)
X_{48} = TriangleCenter(A, B, C, 48)
X_{51} = TriangleCenter(A, B, C, 51)
X_{62} = TriangleCenter(A, B, C, 62)
X_{68} = TriangleCenter(A, B, C, 68)
X_{69} = TriangleCenter(A, B, C, 69)
X_{72} = TriangleCenter(A, B, C, 72)
X_{73} = TriangleCenter(A, B, C, 73)
X_{75} = TriangleCenter(A, B, C, 75)
X_{84} = TriangleCenter(A, B, C, 84)
n: 0
X_{244} = TriangleCenter(A, B, C, 244)
X_{1099} = TriangleCenter(A, B, C, 1099)
X_{1109} = TriangleCenter(A, B, C, 1109)
X_{1111} = TriangleCenter(A, B, C, 1111)
X_{200} = TriangleCenter(A, B, C, 200)
X_{643} = TriangleCenter(A, B, C, 643)
X_{323} = TriangleCenter(A, B, C, 323)
X_{4712} = Mirror(X_{1111}, S_p)
A' = Mirror(A, I)
B' = Mirror(B, I)
d = Conic(A, B, C, A', B')
A_{75} = Intersect(Line[A, X_{75}], a')
B_{75} = Intersect(Line[B, X_{75}], b')
C_{75} = Intersect(Line[C, X_{75}], c')
X_{44} = TriangleCenter(A, B, C, 44)
X_{765} = TriangleCenter(A, B, C, 765)
X_{55} = TriangleCenter(A, B, C, 55)
X_{1776} = TriangleCenter(A, B, C, 1776)
X_{1005} = TriangleCenter(A, B, C, 1005)
f = Line(G, I)
g = Line(X_{44}, X_{765})
h = Line(X_{1776}, X_{55})
i = Line(X_{72}, X_{1005})
X_{3935} = Intersect(g, i)
j = Line(S_p, X_{1099})
k = Line(X_{200}, X_{643})
l = Line(X_{323}, X_{3935})
X_{72488} = Intersect(j, k)
m = Line(G, S_p)
p, q = Tangent(X_{3935}, d)
D = Intersect(d, q)
E = Intersect(d, p)
r = Segment(D, E)
C' = Mirror(C, I)
e = Conic(A_{75}, B_{75}, C_{75}, X_{1111}, X_{244})
s = Segment(X_{1111}, X_{4712})

Tool: AntiCevianTriangle
sommetsX3, point
Input: A, B, C, P
Output: A', B', C'

C_P

B_P

A_P

B'_P

A'_P

C'_P

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
Cc = Intersect(h, c)
B_b = Intersect(b, g)
A_a = Intersect(f, a)
b_P = Line(Cc, A_a)
a_P = Line(Cc, B_b)
c_P = Line(B_b, A_a)
B_0 = Intersect(b, b_P)
A_0 = Intersect(a, a_P)
C_0 = Intersect(c, c_P)
l = Line(A_0, A)
m = Line(C_0, C)
n = Line(B_0, B)
B' = Intersect(m, l)
A' = Intersect(m, n)
C' = Intersect(n, l)

Tool: BrocardALL
sommetsx3
Input: A, B, C
Output: q, X_{182}, Br_1, Br_2, Br_3, A_1, B_1, C_1, A_2, B_2, C_2, O, L_e, X_{15}, X_{16}

Br2

Br1

Br3

A1

C1

B1

C2

B2

A2

a = Segment(B, C)
O = TriangleCenter(A, B, C, 3)
b = Segment(C, A)
c = Segment(A, B)
Br_2 = Barycenter({A, B, C}, {((b * a)) / c, ((c * b)) / a, ((a * c)) / b})
Br_1 = Barycenter({A, B, C}, {((a * c)) / b, ((b * a)) / c, ((c * b)) / a})
t = Line(C, Br_1)
q = Circle(Br_1, O, Br_2)
Br_3 = Barycenter({A, B, C}, {((c * b)) / a, ((a * c)) / b, ((b * a)) / c})
d = Circle(B, Br_1, A)
e = Circle(A, Br_1, C)
h = Circle(A, Br_2, C)
L_e = TriangleCenter(A, B, C, 6)
X_{15} = TriangleCenter(A, B, C, 15)
X_{16} = TriangleCenter(A, B, C, 16)
i = LineBisector(C, B)
l = LineBisector(A, B)
A_1 = Intersect(q, i, 1)
C_1 = Intersect(q, l, 1)
B_1 = Intersect(q, t, 2)
C_2 = Intersect(q, h, 2)
B_2 = Intersect(q, d, 2)
A_2 = Intersect(q, e, 2)
X_{182} = TriangleCenter(A, B, C, 182)

Tool: BrocardAngle
sommetsX3
Input: A, B, C
Output: β

c = Segment(A, B)
a = Segment(B, C)
b = Segment(C, A)
Br_1 = Barycenter({A, B, C}, {((a * c)) / b, ((b * a)) / c, ((c * b)) / a})
β = Angle(Br_1, A, B)

Tool: cevaconjugate
sommetsX3, pointsX2
Input: A, B, C, P, Q
Output: A_P, B_P, C_P, A'_Q, B'_Q, C'_Q, g, f, h, X

Ap

Bp

Cp

A'q

B'q

C'q

Ceva Conjugate-P-Q

a' = Line(B, C)
b' = Line(C, A)
c' = Line(A, B)
u = Element(Tril_U, 1)
v = Element(Tril_U, 2)
w = Element(Tril_U, 3)
A_P = Intersect(Line[A, P], a')
B_P = Intersect(Line[B, P], b')
C_P = Intersect(Line[C, P], c')
A'_Q = Trilinear(A, B, C, (-u), v, w)
B'_Q = Trilinear(A, B, C, u, (-v), w)
C'_Q = Trilinear(A, B, C, u, v, (-w))
f = Line(B_P, B'_Q)
g = Line(A'_Q, A_P)
h = Line(C_P, C'_Q)
X = Intersect(f, g)

Tool: cevapointTRIL
sommetsX3, pointsX2
Input: A, B, C, P, U
Output: F

A_u

B_u

C_u

A_p

B_p

C_p

A_{pu}

C_{pu}

CEVAPOINT-P-U

Au = (20.229091688743235, -3.8819622381798418)
Bu = (22.83794716346338, 5.099721983794658)
Cu = (11.199161660905254, 10.093704424715025)
A_P = (7.843048701552369, -3.9716649211491464)
B_P = (20.404010895270883, 9.466401807248728)
Pc = (7.304287915367481, 5.848757199446947)
g_3 = Line(Au, Pc)
h_3 = Line(A_P, Bu)
Apu = Intersect(h_3, g_3)
i_3 = Line(B_P, Cu)
Cpu = Intersect(i_3, g_3)
k_3 = Line(Cpu, C)
l_3 = Line(A, Apu)
F = Intersect(l_3, k_3)

Tool: CevianTriangle
sommetsX3, point
Input: A, B, C, P
Output: A_a, B_b, Cc

C_P

B_P

A_P

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
Cc = Intersect(h, c)
B_b = Intersect(b, g)
A_a = Intersect(f, a)

Tool: CevianTriangle (command CevianTriangle1)
sommetsX3, point
Input: A, B, C, P
Output: A_a, B_b, Cc

C_P

B_P

A_P

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
Cc = Intersect(h, c)
B_b = Intersect(b, g)
A_a = Intersect(f, a)

Tool: ConjuguéHarmonique
extrêmité,extrêmité,Point
Input: C, B, P
Output: P'

S = Rotate(C, 60°, B)
f = Line(S, C)
h = Line(C, B)
i = Line(S, P)
j = Line(B, f)
M = Intersect(i, j)
M' = Mirror(M, B)
k = Line(S, M')
P' = Intersect(k, h)

Tool: CoordTrilinABCP
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: CrossPoint
sommetsX3, pointsX2
Input: A, B, C, P, Q
Output: X, Pa, Pb, Pc, a'_p, b'_p, c'_p, Qa, Qb, Qc, a'_q, b'_q, c'_q, A'_Q, B'_Q, C'_Q, c_1, d_1, f_2, j_2, l_2, i_2

P_c

P_a

Q_b

P_b

Q_c

Q_a

B'q

A'q

C'q

CrossPoint-P-Q

B'p

c = Line(A, B)
b = Line(C, A)
a = Line(B, C)
Pc = Intersect(c, Line[C, P])
Pa = Intersect(a, Line[A, P])
b'_p = Line(Pc, Pa)
Qb = Intersect(b, Line[B, Q])
e_1 = Line(B, Qb)
Pb = Intersect(b, Line[B, P])
c'_p = Line(Pa, Pb)
Qc = Intersect(c, Line[C, Q])
a'_p = Line(Pc, Pb)
Qa = Intersect(a, Line[A, Q])
c_1 = Line(A, Pa)
a'_q = Line(Qc, Qb)
f_2 = Line(C, Pc)
c'_q = Line(Qa, Qb)
b'_q = Line(Qc, Qa)
d_1 = Line(B, Pb)
B'_Q = Intersect(b'_q, d_1)
h_2 = Line(Qb, B'_Q)
A'_Q = Intersect(a'_q, c_1)
i_2 = Line(Qa, A'_Q)
C'_Q = Intersect(f_2, c'_q)
j_2 = Line(Qc, C'_Q)
X = Intersect(h_2, i_2)
B'_p = Intersect(b'_p, e_1)
l_2 = Line(Pb, B'_p)

Tool: CrossSum
sommetsx3-Point-Point
Input: A, B, C, P, Q
Output: W

l1 = CoordTrilinABCP(A, B, C, P)
l2 = CoordTrilinABCP(A, B, C, Q)
w1: (Element[l1, 2] * Element[l2, 3]) + (Element[l1, 3] * Element[l2, 2])
w2: (Element[l1, 1] * Element[l2, 3]) + (Element[l1, 3] * Element[l2, 1])
w3: (Element[l1, 2] * Element[l2, 1]) + (Element[l1, 1] * Element[l2, 2])
W = Trilinear(A, B, C, w1, w2, w3)

Tool: IsoConjugate
sommetsX3, pointsX2
Input: A, B, C, P, Q
Output: R

P-isoconjugate-Q

l1 = CoordTrilinABCP(A, B, C, P)
l2 = CoordTrilinABCP(A, B, C, Q)
x_P = Element(l1, 1)
y_P = Element(l1, 2)
z_P = Element(l1, 3)
x_Q = Element(l2, 1)
y_Q = Element(l2, 2)
z_Q = Element(l2, 3)
ω: (((((x_P * y_P) * z_P) * x_Q) * y_Q) * z_Q)
R = Trilinear(A, B, C, ω / ((x_P * x_Q)), ω / ((y_P * y_Q)), ω / ((z_P * z_Q)))

Tool: IsogonalConjugate
sommetsx3-Point
Input: A, B, C, P
Output: P', i', k', j', g, f, h, k, j, i

f = AngularBisector(A, B, C)
g = AngularBisector(B, C, A)
h = AngularBisector(C, A, B)
i = Line(A, P)
i' = Mirror(i, h)
j = Line(B, P)
j' = Mirror(j, f)
k = Line(P, C)
k' = Mirror(k, g)
P' = Intersect(j', i')

Tool: IsotomicConjugate
sommetsx3-Point
Input: A, B, C, M
Output: e, A_M, i, A'_M, B'_M, j, f, B_M, g, C_M, h, C'_M, M'

c = Line(A, B)
a = Line(B, C)
b = Line(C, A)
f = Line(B, M)
e = Line(A, M)
g = Line(C, M)
A_M = Intersect(a, e)
B_M = Intersect(b, f)
C_M = Intersect(c, g)
A'_M = Mirror(A_M, Midpoint[B, C])
B'_M = Mirror(B_M, Midpoint[A, C])
C'_M = Mirror(C_M, Midpoint[A, B])
h = Line(C, C'_M)
i = Line(A, A'_M)
M' = Intersect(h, i)
j = Line(B, B'_M)

Tool: lineLmn
sommetsX3, nombresX2
Input: A, B, C, m, n
Output: X_{m}, X_{n}, f

X(n)

X(m)

L(m,n)

X_{n} = TriangleCenter(A, B, C, n)
X_{m} = TriangleCenter(A, B, C, m)
f = Line(X_{m}, X_{n})

Tool: listTrilPoint
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: triangleCevian
sommetsx3-Point
Input: A, B, C, P
Output: A_P, B_P, C_P, k, i, j, g, h, f

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
C_P = Intersect(h, c)
B_P = Intersect(b, g)
A_P = Intersect(f, a)
i = Segment(A_P, B_P)
j = Segment(B_P, C_P)
k = Segment(C_P, A_P)

Tool: trilinearcoordinates
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: trilinearcoordinates (command trilinearcoordinates1)
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: trilinearpolar
sommetsX3, point
Input: A, B, C, P
Output: P_A, P_B, P_C, h_3, i_3, g_3, A'', B'', C'', j_3

A_P

B_P

C_P

C'_P

A'_P

B'_P

perspective axis

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
P_A, P_B, P_C, p_1, r_1, s_1, a_2, b_2, f_3 = triangleCevian(A, B, C, P)
g_3 = Line(P_A, P_B)
h_3 = Line(P_B, P_C)
i_3 = Line(P_A, P_C)
C'' = Intersect(g_3, c)
A'' = Intersect(h_3, a)
B'' = Intersect(b, i_3)
j_3 = Line(C'', A'')

Tool: trilinearPole
sommetsX3, pointsX2
Input: A, B, C, P, U
Output: A', B', C_p, l, A'', B'', C'_{pq}, D, h, f, g

A_{pq}

B_{pq}

C_{pq}

A'_{pq}

B'_{pq}

Trilinear pole

a' = Line(B, C)
b' = Line(C, A)
c' = Line(A, B)
l = Line(P, U)
A' = Intersect(l, a')
B' = Intersect(l, b')
C_p = Intersect(l, c')
A'' = ConjuguéHarmonique(B, C, A')
B'' = ConjuguéHarmonique(A, C, B')
C'_{pq} = ConjuguéHarmonique(B, A, C_p)
f = Line(A, A'')
g = Line(B, B'')
h = Line(C, C'_{pq})
D = Intersect(h, g)

Tool: Trilinearproduct
sommetsX3
Input: A, B, C, P, Q
Output: W

P-trilinear product-Q

Plist = listTrilPoint(A, B, C, P)
Qlist = listTrilPoint(A, B, C, Q)
PQlist1: (Element[Plist, 1] * Element[Qlist, 1])
PQlist2: (Element[Plist, 2] * Element[Qlist, 2])
PQlist3: (Element[Plist, 3] * Element[Qlist, 3])
W = Trilinear(A, B, C, PQlist1, PQlist2, PQlist3)

Tool: triangleCevian (command triangleCevian1)
sommetsx3-Point
Input: A, B, C, P
Output: A_P, B_P, C_P, k, i, j, g, h, f

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
C_P = Intersect(h, c)
B_P = Intersect(b, g)
A_P = Intersect(f, a)
i = Segment(A_P, B_P)
j = Segment(B_P, C_P)
k = Segment(C_P, A_P)

Tool: listTrilPoint (command listTrilPoint1)
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: trilinearSquare
solmmertsx3-Point
Input: A, B, C, P
Output: M

P²

Plist = listTrilPoint(A, B, C, P)
P2list1: Element[Plist, 1]^(2)
P2list2: Element[Plist, 2]^(2)
P2list3: Element[Plist, 3]^(2)
M = Trilinear(A, B, C, P2list1, P2list2, P2list3)

Tool: CoordTrilinABCP (command CoordTrilinABCP1)
sommetsx3,Point
Input: A, B, C, P
Output: l1

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
H_A = ClosestPoint(a, A)
H_B = ClosestPoint(b, B)
H_C = ClosestPoint(c, C)
P_A = ClosestPoint(a, P)
P_B = ClosestPoint(b, P)
P_C = ClosestPoint(c, P)
h_a = Vector(H_A, A)
h_b = Vector(H_B, B)
h_c = Vector(H_C, C)
p_b = Vector(P_B, P)
p_c = Vector(P_C, P)
p_a = Vector(P_A, P)
a_P: (p_a * h_a / Distance[A, H_A])
c_P: (p_c * h_c / Distance[C, H_C])
b_P: (p_b * h_b / Distance[B, H_B])
l1: {a_P, b_P, c_P}

Tool: triangleCevian (command triangleCevian2)
sommetsx3-Point
Input: A, B, C, P
Output: A_P, B_P, C_P, k, i, j, g, h, f

a = Line(B, C)
b = Line(C, A)
c = Line(A, B)
f = Line(A, P)
g = Line(B, P)
h = Line(C, P)
C_P = Intersect(h, c)
B_P = Intersect(b, g)
A_P = Intersect(f, a)
i = Segment(A_P, B_P)
j = Segment(B_P, C_P)
k = Segment(C_P, A_P)

Tool: CevaPoint
sommetsX3, pointsX2
Input: A, B, C, P, U
Output: F

A_u

B_u

C_u

A_p

B_p

C_p

A_{pu}

C_{pu}

CEVAPOINT-P-U

Au, Bu, Cu, d, e, q_1, a_1, k_2, l_2 = triangleCevian(A, B, C, U)
A_P, B_P, Pc, a_2, b_2, c_2, d_2, e_2, f_3 = triangleCevian(A, B, C, P)
g_3 = Line(Au, Pc)
h_3 = Line(A_P, Bu)
Apu = Intersect(h_3, g_3)
i_3 = Line(B_P, Cu)
Cpu = Intersect(i_3, g_3)
k_3 = Line(Cpu, C)
l_3 = Line(A, Apu)
F = Intersect(l_3, k_3)