Dati i due cerchi rispettivamente di centro (3, 3) e raggio 2.5 e di centro (6, 5.5) e raggio 1, calcolare e tracciare (utilizzando opportunamente del software) le due rette tangenti ad entrambi.    
    Non possibile tracciare con un programma la tangente senza conoscere i due punti di tangenza, o altre informazioni che mi consentano di scriverne l'equazione. Posso ragionare come spiegato nella figura qui a sinistra, dove t è la tangente che tocca i cerchi nelle parti superiori (ragionamento analogo potrei farlo per l'altra tangente).  Sia r la retta passante per i due centri C1 e C2. t ed r si incontrano in un punto P; per trovare P tengo conto che per P passa anche la retta s passante per gli estremi sinistri dei due cerchi, che posso trovare facilmente. Quindi, trovato P, traccio la retta per P tangente ad uno dei due cerchi.

Procedendo cos trovo che P è (8, 7.1666…) = (8, 43/6).


Grafici col software online WoframAlpha:

tangent to (x-3)^2+(y-3)^2-2.5^2=0 passing through (8,43/6)
        y = 0.309877 x + 4.68765
        y = 1.91234 x - 8.13209
plot {(x-3)^2+(y-3)^2-2.5^2=0,(x-6)^2+(y-5.5)^2-1=0,y=0,x=0,y=0.309877x+4.68765,y=1.91234x-8.13209}, -1<x<10,-1<y<10

# Ecco come posso realizzare il calcolo ad es. con R
source("http://macosa.dima.unige.it/r.R")
PLANE(0,10,0,10)
C1=c(3,3); R1=2.5; C2=c(6,5.5); R2=1
circle(C1[1],C1[2], R1,"brown"); circle(C2[1],C2[2], R2,"brown")
# ho ottenuto la figura del testo dell'esercizio
POINT(C1[1],C1[2], "blue"); POINT(C2[1],C2[2], "blue")
l2p(C1[1],C1[2], C2[1],C2[2], "blue")
POINT(C1[1]-R1,C1[2], "blue"); POINT(C2[1]-R2,C2[2], "blue")
l2p(C1[1]-R1,C1[2], C2[1]-R2,C2[2], "blue")
line_line(C1[1],C1[2],C2[1],C2[2], C1[1]-R1,C1[2],C2[1]-R2,C2[2])
P=c(solut[1],solut[2]); POINT(P[1],P[2], "seagreen")
# ho ottenuto la figura sopra a sinistra
#
PLANE(0,10,0,10)
circle(C1[1],C1[2], R1,"brown"); circle(C2[1],C2[2], R2,"brown")
POINT(P[1],P[2], "seagreen"); fraction(P)
#  8  43/6
Q=P_tan(P[1],P[2], C1[1],C1[2], R1)
l2p(Q[1],Q[2], P[1],P[2], "seagreen"); l2p(Q[3],Q[4], P[1],P[2], "seagreen")
# ho ottenuto la figura a destra
#
# la figura che illustra le motivazioni del procedimento
#
PLANE(0,10,0,10)
C1=c(3,3); R1=2.5; C2=c(6,5.5); R2=1
circle(C1[1],C1[2], R1,"brown"); circle(C2[1],C2[2], R2,"brown")
POINT(C1[1],C1[2], "blue"); POINT(C2[1],C2[2], "blue")
l2p(C1[1],C1[2], C2[1],C2[2], "blue")
POINT(C1[1]-R1,C1[2], "blue"); POINT(C2[1]-R2,C2[2], "blue")
l2p(C1[1]-R1,C1[2], C2[1]-R2,C2[2], "blue")
line_line(C1[1],C1[2],C2[1],C2[2], C1[1]-R1,C1[2],C2[1]-R2,C2[2])
P=c(solut[1],solut[2]); POINT(P[1],P[2], "seagreen")
Q=P_tan(P[1],P[2], C1[1],C1[2], R1); Q
l2p(Q[1],Q[2], P[1],P[2], "seagreen"); l2p(Q[3],Q[4], P[1],P[2], "seagreen")
POINT(Q[1],Q[2], "seagreen"); POINT(Q[3],Q[4], "seagreen")