Il prodotto di una omotetia di centro O e rapporto k, 
per una rotazione di angolo α, è una similitudine pura se l'angolo 
di rotazione non è multiplo di 180°, ed ha un solo punto unito.

A = (-40.38364032882626, -0.4235986299691098)
B = (-45.09382506446658, -5.351176507254367)
C = (-28.861803821644553, -7.380179162607121)
poly1, c, a_1, b = Polygon(A, B, C)
O = (-24.80379851093905, 2.8372984947049575)
k = 0.40000000000000036 (slider from -2 to 2, step 0.1)
A' = Dilate(A, k, O)
B' = Dilate(B, k, O)
C' = Dilate(C, k, O)
poly1', c', a', b' = Polygon(A', B', C')
E = (-21.83275890845823, 1.9677259281252064)
F = (-16.687787889528035, -6.365677834930744)
α = 1.3264502315156905 rad (slider from 0 to 6.283185307179586, step 0.017453292519943295)
D = (-19.87622063365379, 2.6923697336083325)
A'' = Rotate(A', α, D)
B'' = Rotate(B', α, D)
C'' = Rotate(C', α, D)
poly1'', c'', a'', b'' = Polygon(A'', B'', C'')
a = Segment(A, A'')
d = Segment(C, C'')
e = Segment(B, B'')

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)

Tool: Ellisse
Clicca su due punti che sono i fuochi e su un terzo punto
Input: F_2, B, F_1
Output: loc2

c = Circle(F_2, B)
Q = Point(c)
e = LineBisector(F_1, Q)
f = Line(F_2, Q)
C = Intersect(e, f)
loc2 = Locus(C, Q)