Intersezioni segmento-punto
Buona sera. Pongo alla vostra attenzione un problema per sapere se il mio modo di ragionare è corretto.
E' dato il segmento AB (conosco sia le coordinate del punto A che di B) e una circonferenza di centro P (anche di questo sono note le coordinate) e raggio r.
Come posso sapere se sono presenti punti di contatto/intersezione (non mi interessa né il numero né la posizione di questi)?
La mia idea era quella di ricavare i due cateti di un generico triangolo isoscele di base AB e altezza r, chiamiamoli AC e CB, e confrontarli con le distanze AP e PB.
Se AC+BC >= AP+PB, allora cerchio e segmento sono in contatto.
Ho però dei dubbi sul funzionamento di questo ragionamento agli estremi del segmento...
Cosa mi suggerite? Ci sono metodi più intuitivi?
Grazie in anticipo!
E' dato il segmento AB (conosco sia le coordinate del punto A che di B) e una circonferenza di centro P (anche di questo sono note le coordinate) e raggio r.
Come posso sapere se sono presenti punti di contatto/intersezione (non mi interessa né il numero né la posizione di questi)?
La mia idea era quella di ricavare i due cateti di un generico triangolo isoscele di base AB e altezza r, chiamiamoli AC e CB, e confrontarli con le distanze AP e PB.
Se AC+BC >= AP+PB, allora cerchio e segmento sono in contatto.
Ho però dei dubbi sul funzionamento di questo ragionamento agli estremi del segmento...
Cosa mi suggerite? Ci sono metodi più intuitivi?
Grazie in anticipo!
Risposte
Bhè... credo che il modo più intuitivo sia di cercare i punti di intersezione, e se non se ne trovano, dedurre che l'intersezione è vuota.
Io scriverei l'equazione della retta passante per i due punti: $ax+by+c=0$;
poi scriverei l'equazione della circonferenza di centro e raggio noti: $(x-x_0)^2+(y-y_0)^2=r^2$;
Poi li metterei a sistema e mi ritroverei nei seguenti casi:
Non trovo nessuna soluzione, ovvero la retta non interseca la circonferenza;
Trovo una soluzione, ovvero la retta è tangente alla circonferenza. A questo punto però bisognerebbe controllare che l'intersezione tra retta e circonferenza sia sul segmento che stiamo considerando;
Trovo due soluzioni, ovvero la retta è secante. Anche qui, bisogna controllare che i punti di intersezione tra retta e circonferenza stiano sul segmento considerato.
Io scriverei l'equazione della retta passante per i due punti: $ax+by+c=0$;
poi scriverei l'equazione della circonferenza di centro e raggio noti: $(x-x_0)^2+(y-y_0)^2=r^2$;
Poi li metterei a sistema e mi ritroverei nei seguenti casi:
Non trovo nessuna soluzione, ovvero la retta non interseca la circonferenza;
Trovo una soluzione, ovvero la retta è tangente alla circonferenza. A questo punto però bisognerebbe controllare che l'intersezione tra retta e circonferenza sia sul segmento che stiamo considerando;
Trovo due soluzioni, ovvero la retta è secante. Anche qui, bisogna controllare che i punti di intersezione tra retta e circonferenza stiano sul segmento considerato.
Non so cosa intendi per metodi più intuitivi, però si può procedere per esclusione, o meglio a tappe:
1) confrontare AP e PB con r: se A, B entrambi interni, NO; se A, B uno interno uno esterno, SI; se A, B entrambi esterni passare al punto successivo;
2) confrontare la distanza di P dalla retta AB con r: se AB esterna, NO; altrimenti passare al punto successivo;
3) mandare da P la perpendicolare ad AB e vedere se A, B appartengono allo stesso semipiano ...
1) confrontare AP e PB con r: se A, B entrambi interni, NO; se A, B uno interno uno esterno, SI; se A, B entrambi esterni passare al punto successivo;
2) confrontare la distanza di P dalla retta AB con r: se AB esterna, NO; altrimenti passare al punto successivo;
3) mandare da P la perpendicolare ad AB e vedere se A, B appartengono allo stesso semipiano ...
Buondì! Innanzitutto grazie per le risposte.
Questo è un tipo di soluzione che vorrei evitare: non avendo necessità né di conoscere il numero, né la posizione dei punti di intersezione, vorrei evitare di dover agire in questo modo...
Intendo un metodo che permetta di giungere al risultato più per logica che per calcoli... Vorrei soprattutto evitare di assimilare il segmento ad una retta.
Tornando al mio procedimento, è sbagliato? Se si in quale punto?
"billyballo2123":
Io scriverei l'equazione della retta passante per i due punti: $ ax+by+c=0 $;
poi scriverei l'equazione della circonferenza di centro e raggio noti: $ (x-x_0)^2+(y-y_0)^2=r^2 $;
Poi li metterei a sistema [...]
Questo è un tipo di soluzione che vorrei evitare: non avendo necessità né di conoscere il numero, né la posizione dei punti di intersezione, vorrei evitare di dover agire in questo modo...
"adaBTTLS":
Non so cosa intendi per metodi più intuitivi [...]
Intendo un metodo che permetta di giungere al risultato più per logica che per calcoli... Vorrei soprattutto evitare di assimilare il segmento ad una retta.
Tornando al mio procedimento, è sbagliato? Se si in quale punto?
"Calaf":
La mia idea era quella di ricavare i due cateti di un generico triangolo isoscele di base AB e altezza r, chiamiamoli AC e CB, e confrontarli con le distanze AP e PB.
Se AC+BC >= AP+PB, allora cerchio e segmento sono in contatto.
non capisco: se AB è la base di un triangolo isoscele, AC e CB possono essere chiamati cateti in questa descrizione solo se C è il punto medio di AB, ma in tal caso la diseguaglianza in senso stretto non è mai verificata, mentre si ha l'uguaglianza se e solo se P appartiene al segmento AB.
Se ho capito male, prova a spiegarti meglio, altrimenti (e comunque) prova a seguire anche la mia traccia e facci sapere.
ciao