Il punto di Lemoine di un triangolo acutangolo è l'intersezione delle rette 
passanti per i punti medi dei lati e i punti medi delle altezze 
relative ai detti lati. Il punto di Lemoine è tale che la somma 
dei quadrati delle sue distanze dai lati è minima. Il triangolo 
i cui vertici sono le proiezioni ortogonali di L sui lati di ABC 
ha per baricentro L ed è il triangolo inscritto in ABC per cui 
è minima la somma dei quadrati dei lati. 

Mostra punto di Lemoine

Mostra Triangolo di Lemoine

Mostra punto e triangolo generici

P = (-1.3464432836600746, -2.501416744486275)
C = (0.33862866336048103, -3.0348208140467383)
B = (-4.025586451225128, -2.7923644187919825)
A = (-2.170795027526245, 0.2868318009434188)
poly1, c, a, b = Polygon(A, B, C)
distanzaPc = Distance(P, c)
distanzaPb = Distance(P, b)
distanzaPa = Distance(P, a)
dp: distanzaPa^(2) + distanzaPb^(2) + distanzaPc^(2)
e = OrthogonalLine(C, c)
H_C = Intersect(c, e)
g = Segment(C, H_C)
F = Midpoint(g)
d = OrthogonalLine(A, a)
H_A = Intersect(a, d)
i = Segment(A, H_A)
D = Midpoint(i)
M_A = Midpoint(a)
j = Line(M_A, D)
M_C = Midpoint(c)
k = Line(M_C, F)
L = Intersect(j, k)
distanzaLc = Distance(L, c)
distanzaLa = Distance(L, a)
distanzaLb = Distance(L, b)
dL: distanzaLc^(2) + distanzaLa^(2) + distanzaLb^(2)
M_B = Midpoint(b)
f = OrthogonalLine(B, b)
H_B = Intersect(b, f)
h = Segment(H_B, B)
E = Midpoint(h)
l = Line(M_B, E)
m = false
n = OrthogonalLine(L, a)
p = OrthogonalLine(L, b)
q = OrthogonalLine(L, c)
G = Intersect(c, q)
H = Intersect(b, p)
I = Intersect(a, n)
poly2, i_1, g_1, h_1 = Polygon(G, H, I)
J = Intersect(p, h_1)
K = Intersect(q, g_1)
M = Intersect(n, i_1)
r = Segment(G, L)
s = Segment(L, H)
t = Segment(L, I)
distanzaGM = Distance(G, M)
TestoGM: "\overline{" + (Name[G]) + (Name[M]) + "} \, = \, " + distanzaGM
distanzaMH = Distance(M, H)
TestoMH: "\overline{" + (Name[M]) + (Name[H]) + "} \, = \, " + distanzaMH
distanzaHK = Distance(H, K)
TestoHK: "\overline{" + (Name[H]) + (Name[K]) + "} \, = \, " + distanzaHK
distanzaKI = Distance(K, I)
TestoKI: "\overline{" + (Name[K]) + (Name[I]) + "} \, = \, " + distanzaKI
distanzaIJ = Distance(I, J)
TestoIJ: "\overline{" + (Name[I]) + (Name[J]) + "} \, = \, " + distanzaIJ
distanzaJG = Distance(J, G)
TestoJG: "\overline{" + (Name[J]) + (Name[G]) + "} \, = \, " + distanzaJG
o = false
TestoLb: "\overline{" + (Name[L]) + (Name[b]) + "} \, = \, " + distanzaLb
TestoLa: "\overline{" + (Name[L]) + (Name[a]) + "} \, = \, " + distanzaLa
TestoLc: "\overline{" + (Name[L]) + (Name[c]) + "} \, = \, " + distanzaLc
TestoPa: "\overline{" + (Name[P]) + (Name[a]) + "} \, = \, " + distanzaPa
TestoPb: "\overline{" + (Name[P]) + (Name[b]) + "} \, = \, " + distanzaPb
TestoPc: "\overline{" + (Name[P]) + (Name[c]) + "} \, = \, " + distanzaPc
text2: "La²+Lb²+Lc² = " + dL + "

Pa²+Pb²+Pc² = " + dp
distanzaGH = Distance(G, H)
TestoGH: "\overline{" + (Name[G]) + (Name[H]) + "} \, = \, " + distanzaGH
distanzaHI = Distance(H, I)
TestoHI: "\overline{" + (Name[H]) + (Name[I]) + "} \, = \, " + distanzaHI
distanzaIG = Distance(I, G)
TestoIG: "\overline{" + (Name[I]) + (Name[G]) + "} \, = \, " + distanzaIG
dTL: distanzaGH^(2) + distanzaIG^(2) + distanzaHI^(2)
N = Point(poly1)
O = Point(poly1)
Q = Point(poly1)
poly3, q_1, n_1, o_1 = Polygon(N, O, Q)
distanzaNO = Distance(N, O)
TestoNO: "\overline{" + (Name[N]) + (Name[O]) + "} \, = \, " + distanzaNO
distanzaOQ = Distance(O, Q)
TestoOQ: "\overline{" + (Name[O]) + (Name[Q]) + "} \, = \, " + distanzaOQ
distanzaQN = Distance(Q, N)
TestoQN: "\overline{" + (Name[Q]) + (Name[N]) + "} \, = \, " + distanzaQN
dt: distanzaNO^(2) + distanzaOQ^(2) + distanzaQN^(2)
text3: "GH²+HI²+IG² = " + dTL + "
NO²+NQ²+QO² = " + dt
u = false

Tool: Circocerchio
Clicca sul triangolo
Input: poly1
Output: p, T

A = (-1.9867180309718853, 3.399206189848298)
B = (-3.080683477006394, 1.9442321466224008)
C = (-0.6192612234287485, 1.9004735287810202)
poly1, c, a, b = Polygon(A, B, C)
j = LineBisector(a)
l = LineBisector(c)
T = Intersect(j, l)
p = Circle(T, B)

Tool: Circonferenza inscrita (command Circonferenzainscrita)
Clicca sui vertici del triangolo
Input: N, P, Q
Output: c_1, R

poly2, q_1, n_1, p_1 = Polygon(N, P, Q)
r = AngularBisector(N, Q, P)
s = AngularBisector(P, N, Q)
R = Intersect(r, s)
t = OrthogonalLine(R, p_1)
S = Intersect(t, p_1)
c_1 = Circle(R, S)

Tool: Ortocentro
Clicca sui vertici del triangolo
Input: E_1, F_1, G_1
Output: H_1

j_1 = Line(F_1, G_1)
l_1 = Line(G_1, E_1)
m_1 = OrthogonalLine(F_1, l_1)
n_1 = OrthogonalLine(E_1, j_1)
H_1 = Intersect(m_1, n_1)

Tool: Excerchi
Clicca su 3 rette che determinano un triangolo
Input: b, c, a
Output: p, E, D, F, q, r

d, e = AngularBisector(a, c)
f, g = AngularBisector(b, c)
h, i = AngularBisector(a, b)
D = Intersect(h, d)
E = Intersect(d, f)
F = Intersect(f, h)
j = OrthogonalLine(D, a)
k = OrthogonalLine(E, c)
l = OrthogonalLine(F, b)
G = Intersect(b, l)
H = Intersect(k, c)
I = Intersect(j, a)
p = Circle(E, H)
q = Circle(F, G)
r = Circle(D, I)

Tool: Tr. Equil. su lato (command Treqlato)
Clicca sugli estremi in verso orario
Input: A, C
Output: poly2, a_1, c_1, D, d_1

d = Circle(C, A)
e = Circle(A, C)
D = Intersect(d, e, 2)
poly2, c_1, a_1, d_1 = Polygon(A, D, C)