SONAR-INFO-p67
Geometria analitica (7°)
Calcolo dei punti di contatto tra due circonferenze comunque disposte
1)Generalità 2)Algoritmi in V.B. per calcolo punti di contatto tra due circonferenze 3)Come si presenta la schermata del file eseguibile 4)Esempio d'utilizzo del programma di calcolo 5)Note
Per venire incontro a numerose richieste per l'estensione dei file eseguibili, dei tipi già
utilizzati in p55 e p57, per la soluzione di
altri problemi di geometria analitica, si illustrano alcune routine di calcolo per la soluzione
di casi diversi che possono essere utili a chi deve cimentarsi in questa
interessante parte della matematica.
Una premessa è necessaria prima del prosieguo della pagina: gli algoritmi utilizzati
non sono dimostrati ma soltanto implementati, a favore del calcolo automatico,
in apposite routine in Visual Basic; per le dimostrazioni si rimanda agli innumerevoli testi
di geometria analitica in commercio.
Le coordinate dei punti di contatto tra due circonferenze comunque disposte nel piano cartesiano
, siano tangenti che secanti, si calcolano
mediante la soluzione di un sistema di secondo grado che vede coinvolte l'equazioni delle due
curve.
La soluzione del sistema menzionato presenta senibili difficoltà di manipolazione dei dati con il
rischio di banali, ma deleteri, errori nel suo sviluppo.
Con l'aiuto del programma eseguibile che andiamo ad illustrare è possibile risolvere i problemi
relativi a due circonferenze con estrema rapidità e sicurezza dei risultati.
La struttura del programma prevede la grafica e la soluzione del problema con riferimento
al sistema delle due equazioni sotto riportate:
X^2 + Y^2 + aX + bY + c = 0
X^2 + Y^2 + a1X + b1Y + c1 = 0
Entrambe le equazioni sono relative a circonferenze con i centri comunque collocati:
pc(Xc;Yc) e pc1(Xc1;Yc1) con R, R1.
Tutti i dati sono inseriti con impostazione su P.C.
Gli algoritmi implementati, scritti in linguaggio V.B. sono:
-coordinate dei centri e raggi : (Xc; Yc) ; (Xc1;Yc1) ; R ; R1
-calcolo dei coefficienti a; b; c dell'equazione del cerchio X^2 + Y^2 + aX + bY + c = 0
secondo:
a = -2 * Xc
b = -2 * Yc
c = ((Xc / 2) ^ 2) + ((Yc / 2) ^ 2) - R ^ 2
-calcolo dei coefficienti a1; b1; c1 dell'equazione del cerchio X^2 + Y^2 + a1X + b1Y + c1 = 0
secondo:
a1 = -2 * Xc1
b1 = -2 * Yc1
c1 = ((Xc1 / 2) ^ 2) + ((Yc1 / 2) ^ 2) - R1 ^ 2
-soluzione del sistema di secondo grado:
k1 = ( a1 - a )
k2 = ( b1 - b )
k3 = ( c1 - c )
z1 = -(k1 / k2)
z2 = -(k3 / k2)
k4 = (1 + z1 ^ 2)
k5 = (2 * z1 * z2 + a + b * z1)
k6 = b * z2 + c + z2 ^ 2
If (k5 ^ 2 - 4 * k4 * k6) < 0 salta il calcolo "nessun punto di cntatto"
X1 = (-k5 + Sqr(k5 ^ 2 - 4 * k4 * k6)) / (2 * k4)
X2 = (-k5 - Sqr(k5 ^ 2 - 4 * k4 * k6)) / (2 * k4)
Y1 = z1 * X1 + z2
Y2 = z1 * X2 + z2
La schermata del file eseguibile, al lancio sul P.C, si presenta come mostrato in figura 1,
in essa s'individuano:
-il tracciato cartesiano
-la sezione per l'inserzione dati comprendente 7 TextBox ed un pulsante di comando.
nella parte sinistra si digitano i dati, indicati in rosso, relativi alla prima circonferenza.
nella parte destra si digitano i dati, indicati in blu, relativi alla seconda circonferenza.
-la casella per l'inserimento del valore di scala relativo al tracciato cartesiano
In questo paragrafo sono proposti due esercizi grafico numerici la cui risoluzione è basata
sul file eseguibile (eserc.C2eqlib) .
Primo esercizio, "curve secanti", è relativo a due circonferenze individuate dalle due terne:
curva rossa: pc(Xc = 3 ; Yc = -4 ); R = 6
curva blu: pc1(Xc1 = -5 ; Yc1 = -3 ); R1 = 3.
Dopo la digitazione dei dati e l'impostazione scala a : fondo scala = 10, si preme il pulsante calcolo
e si ottiene la schermata di figura 2 che indica:
-valori dei coefficienti
curva rossa: a = -6 ; b = 8 ; c = -11
curva blu: a = 10 ; b = 6 ; c = 25
-coordinate dei due punti di contatto tra le curve
p1( X1 = -2.43 ; Y1 = -1.45 ) ; p2( X2 = -2.89 ; Y2 = - 5.13 )
Una volta presentati i dati questi possono essere cambiati e , dopo la pressione del pulsante calcolo
ottenenere una presentazione completamente diversa.
Secondo esercizio, "curve tangenti", è relativo a due circonferenze individuate dalle due terne:
curva rossa: pc(Xc = 5 ; Yc = 5 ); R = 2.82
curva blu: pc1(Xc1 = 1 ; Yc1 = 1 ); R1 = 2.85
Dopo la digitazione dei dati e l'impostazione scala a : fondo scala = 10, si preme il pulsante calcolo
e si ottiene la schermata di figura 3 che indica:
-valori dei coefficienti
curva rossa: a = -10 ; b = -10 ; c = 42.05
curva blu: a = -2 ; b = -2 ; c = -6.07
-coordinate dei due punti di contatto tra le curve
p1( X1 = 3.07 ; Y1 = 1.94 ) ; p2( X2 = 3.07 ; Y2 = 1.94 )
l'uguaglianza delle coordinate evidenzia la condizione di tangenza.
Si deve osservare che il caso ora trattato ha richiesto piccoli aggiustaggi nel dimensionamento
dei raggi delle due circonferenze al fine di ottenere punti di contatto coincidenti (tangenza).
Senza messa a punto delle misure è difficile realizzare la condizione "numerica" di tangenza se pur
la condizione grafica la giustificherebbe; ciò perche i numeri elaborati dal P.C. sono decimali
e il più delle volte la dove dovrebbe esserci un punto di tangenza figurano due punti se pur molto
vicini.
-Generalmente i problemi scolastici di geometria analitica mostrano, in tutti i casi, l'impiego
di numeri razionali (frazioni numeriche) o irrazionali (radici quadrate) per l'eleganza formale
del testo; è naturale quindi che per il controllo dei risultati di un problema di tipo scolastico
con l'analogo sviluppato con le nostre routine si dovranno trasformare i valori razionali o
irrazionali esposti per il primo in valori decimali per il confronto con il secondo.
-Il controllo software del file eseguibile è stato eseguito al meglio; è possibile però che
qualche particolare anomalia sia sfuggita all'esame.
Si prega pertanto chi dovesse riscontrare qualche difetto nell'impiego del programma di renderlo
noto tramite " Contatti con l'autore"; si provvederà all'aggiustaggio in rete.