Un vecchio teorema giapponese, dice che 
se da un poligono convesso inscritto in una circonferenza 
tracciamo le diagonali da un vertice, allora 
la somma dei raggi delle circonferenze inscritte nei triangoli 
così determinati è costante.

diagonali da E

diagonali da A

B = (-4.086651632693812, 0.01282701900479477)
O = (-1.4886055201690873, -1.7887378035488455)
c = Circle(O, B)
A = Point(c)
E = Point(c)
D = Point(c)
r, K = Circonferenzainscrita(A, D, E)
q, J = Circonferenzainscrita(A, B, D)
C = Point(c)
p, I = Circonferenzainscrita(A, C, B)
poly1, c_1, b, d, e, a = Polygon(C, B, D, E, A)
distanzaKd = Distance(K, d)
distanzaJb = Distance(J, b)
distanzaIa = Distance(I, a)
d2: distanzaIa + distanzaJb + distanzaKd
f, F = Circonferenzainscrita(E, D, B)
g, G = Circonferenzainscrita(E, B, C)
h, H = Circonferenzainscrita(E, C, A)
i = Segment(B, E)
j = Segment(E, C)
distanzaFd = Distance(F, d)
distanzaFb = Distance(F, b)
TestoFb: "\overline{" + (Name[F]) + (Name[b]) + "} \, = \, " + distanzaFb
distanzaGc1 = Distance(G, c_1)
TestoGc1: "\overline{" + (Name[G]) + (Name[c_1]) + "} \, = \, " + distanzaGc1
distanzaHa = Distance(H, a)
TestoHa: "\overline{" + (Name[H]) + (Name[a]) + "} \, = \, " + distanzaHa
d1: distanzaGc1 + distanzaFb + distanzaHa
text2: "Somma raggi da E = " + distanzaGc1 + " + " + distanzaFb + " + " + distanzaHa + " = " + d1
k = false
l = Segment(B, A)
m = Segment(A, D)
TestoIa: "\overline{" + (Name[I]) + (Name[a]) + "} \, = \, " + distanzaIa
TestoJb: "\overline{" + (Name[J]) + (Name[b]) + "} \, = \, " + distanzaJb
TestoKd: "\overline{" + (Name[K]) + (Name[d]) + "} \, = \, " + distanzaKd
text3: "Somma raggi da A = " + distanzaIa + " + " + distanzaJb + " + " + distanzaKd + " = " + d2
n = false

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

A = (-3.5935917865212366, 1.1316935930117926)
B = (-5.5658311712115385, -1.5422078804625579)
C = (0.6922361071326875, -2.8696766970810303)
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)

Tool: Quadrato su lato (command Quadratosulato)
Clicca su un segmento e sui suoi estremi
Input: F, G, h
Output: poly3, f_1, i_1, h_1

h = Segment(F, G)
i = OrthogonalLine(G, h)
j = OrthogonalLine(F, h)
k = Circle(G, F)
H = Intersect(k, i, 2)
l = OrthogonalLine(H, i)
I = Intersect(j, l)
poly3, i_1, h_1, g_1, f_1 = Polygon(I, H, G, F)

Tool: Rapporto aureo (command Rapportoaureo)
Clicca sugli estremi del segmento
Input: A, B
Output: E

a = Segment(A, B)
b = OrthogonalLine(B, a)
M = Midpoint(a)
c = Circle(B, M)
C = Intersect(c, b, 2)
d = Segment(C, A)
e = Circle(C, B)
D = Intersect(e, d, 1)
f = Circle(A, D)
E = Intersect(f, a, 1)