Il luogo dei punti per i quali è costante il rapporto delle distanze da un punto fisso F 
e da una retta fissa d, è una conica di fuoco F e direttrice d, il rapporto è l'eccentricità 
della conica. Il luogo si ottiene al variare di G sulla semiretta BC, in modo però che 
l'angolo di vertice O rimanga costante. 
PF = BH e Pd = GH. Muovi B per tracciare il luogo. Muovi C per variare l'eccentricità.
Se l'eccentricità è maggiore di 1, si traccia anche il luogo dei simmetrici di Ke J 
perché l'iperbole ha due rami.

E = (-14.831081924759518, -7.3769199267751615)
C = (-14.368817778558718, -5.954568707695774)
B = (-18.88478289913577, -7.341361146298177)
b = Ray(B, E)
a = Ray(B, C)
G = Point(a)
c = OrthogonalLine(G, b)
H = Intersect(b, c)
distanzaGH = Distance(G, H)
distanzaBH = Distance(B, H)
F = (1.3481631922685258, 2.117274460579756)
C_1 = (-7.744216975696468, -0.7380956117221165)
D = (2.386479582196479, -0.6207516361480667)
d = Line(C_1, D)
A = Point(d)
f = OrthogonalLine(A, d)
e: distanzaGH / distanzaBH
text2: "Eccentricità = " + distanzaBH + "/" + distanzaGH + " = " + e
g = Circle(F, distanzaGH)
h = OrthogonalLine(A, d)
k = Circle(A, distanzaBH)
I = Intersect(k, h, 2)
i = OrthogonalLine(I, h)
J, K = Intersect(g, i)
loc1 = Locus(J, G)
loc2 = Locus(K, G)
K' = Mirror(K, d)
J' = Mirror(J, d)
loc3 = Locus(J', G)
loc4 = Locus(K', G)
j = Segment(G, H)
α = Angle(H, B, G)

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

A = (-4.221655823828217, 0.2573952157720354)
B = (-6.409212927818962, -0.8940157728338809)
C = (-5.616576067409749, -3.37139259388696)
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: 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)