Intersezione ellisse con circonferenza per 2 punti

Messaggioda RobertoMor1980 » 12/03/2017, 19:38

Salve ragazzi :), mi presento sono Roberto e sono nuovo nel forum, sono un amante dell'informatica e della matematica, anche perché il 100% del mio lavoro è incentrato proprio su queste 2 materie, sono un programmatore di macchine utensili, quindi per me la matematica la vivo 8 ore al dì.
Vi espongo il mio quesito, vorrei crearmi una funzione in C++ che mi calcoli 2 punti d'intersezione tra un'ellisse ed una circonferenza, pertanto vi chiedo delle delucidazioni in merito. Per aiutarmi uso un foglio elettronico, metto a sistema le equazioni dell'ellisse e la circonferenza (per quest'ultima uso la stessa equazione cioè: (x-x0)^2/a^2 + (y-y0)^2/b^2 = 1). Verifico le equazioni messe a sistema disegnando in un programma CAD entrambe le figure geometriche, e fino alla divisione dei coefficienti di entrambe le equazioni per il proprio parametro y^2, tutto ok, poi arrivo nel punto in cui mi rimane un'equazione di secondo grado ad una incognita x, e qui il delta mi risulta minore di zero, ma in realtà entrambe le geometrie si intersecano.
Questo è il percorso matematico che faccio:
1) Trovo le equazioni delle 2 figure geometriche usando l'equazione: (x-x0)^2/a^2 + (y-y0)^2/b^2 = 1.
2) Le metto a sistema.
3) Divido ogni singolo coefficiente di entrambe le equazioni per il proprio parametro y^2
4) Sottrazione dei coefficienti delle equazioni: (x1^2-x2^2)+(y1^2-y2^2)+(x1-x2)+(y1-y2)+(c1-c2)=0. Dopo tale sottrazione il risultato è un'equazione con x^2+x+y+c=0.
5) Divido ogni singolo coefficiente dell'equazione risultante per il coefficiente di y
6) Mi rimane un'equazione di 2° grado ad un'incognita (x).
7) Calcolo con la formula risolutiva i valori di x1 e x2. E qui il delta della radice quadra mi esce minore di zero, anche se non dovrebbe esserlo.

Vorrei postarvi il file excel che ho fatto, ma non me lo fa pubblicare perché dice che l'estensione non va bene! Comunque posso inviare per e-mail il file a chi vuole aiutarmi.

Grazie a tutti :)
RobertoMor1980
Starting Member
Starting Member
 
Messaggio: 1 di 10
Iscritto il: 12/03/2017, 17:28

Re: Intersezione ellisse con circonferenza per 2 punti

Messaggioda pilloeffe » 13/03/2017, 10:52

Ciao RobertoMor1980,

Benvenuto sul forum. Nel tuo quesito ci sono diversi punti poco chiari. Innanzitutto non puoi usare la stessa equazione per ellisse e circonferenza: infatti nessuno ti assicura che i centri delle due figure geometriche coincidano, cioè che $x_0 = x_C$ e $y_0 = y_C$. Ammettendo anche che tu in qualche modo sappia che i due centri coincidano, l'ellisse diventa una circonferenza solo se $a = b = r$. In generale, anche supponendo che i due centri coincidano, a seconda delle relazioni fra le quantità positive $a$, $b$ e $r$ si possono presentare diversi casi:
1) Nessuna intersezione: basta pensare al caso $r < b < a$ o al caso $r > a > b$;
2) 2 punti di contatto: basta pensare al caso dell'ellisse dentro la circonferenza o della circonferenza dentro l'ellisse;
3) 4 intersezioni se $a > r > b$;
4) Ellisse e circonferenza coincidenti se $a = b = r$.

Qual è il tuo caso? Sai di sicuro che il centro dell'ellisse coincide con quello della circonferenza?
pilloeffe
Cannot live without
Cannot live without
 
Messaggio: 22 di 10581
Iscritto il: 07/02/2017, 15:45
Località: La Maddalena - Modena

Re: Intersezione ellisse con circonferenza per 2 punti

Messaggioda RobertoMor1980 » 13/03/2017, 12:45

Ciao e grazie per aver risposto :),
per quanto riguarda l'equazione della circonferenza io so che anche se diversa da quella dell'ellisse, sono equivalenti. Infatti facendo le verifiche di entrambe le equazioni ottenute sia dell'ellisse che della circonferenza su un programma CAD, le equazioni mi risultano corrette.
Per quanto riguarda le figure, sia l'ellisse che la circonferenza non coincidono con l'origine e il centro circonferenza non coincide con quello dell'ellisse, ho estremizzato a proposito il caso proprio perchè poi dovrò scrivere una funzione in C++ che dovrà funzionare in tutti i casi in cui un'ellisse ed una circonferenza hanno sempre e solo 2 punti comuni.
Per quanto riguarda il mio caso specifico l'ellisse e la circonferenza hanno 2 punti in comune, degli altri 3 casi per ora non mi interessano.
Purtroppo non riesco a caricare qui sopra il file di excel che ho fatto perchè il server non accetta le estensioni .xlsl, così avevi la possibilità di controllare dov'era l'errore, nel caso c'è!

Comunque i dati delle geometrie sono:
Centro ellisse (-3; 4) a=3 b=2.5
centro circonferenza (-1.3; 6.4) a=b=r=1.2

Le equazioni ottenute e verificate su CAD sono:
ellisse: 0.6944x^2+y^2+4.1667x-8y+16=0
circonferenza: x^2+y^2+2.6x-12.8y+41.21=0
RobertoMor1980
Starting Member
Starting Member
 
Messaggio: 2 di 10
Iscritto il: 12/03/2017, 17:28

Re: Intersezione ellisse con circonferenza per 2 punti

Messaggioda pilloeffe » 13/03/2017, 16:23

Ok, adesso i contorni della faccenda si fanno un po' più chiari... :wink:

Se la situazione è sempre questa, con $x_0 \ne x_C$ e $y_0 \ne y_C$ ed il centro della circonferenza $C(x_C, y_C)$ esterno al contorno dell'ellisse, direi che possiamo escludere il caso delle 4 intersezioni, ma rimangono i casi di 2 e nessuna intersezione, ai quali si aggiunge anche il caso di due intersezioni coincidenti nel caso di tangenza in un punto.

Con WolframAlpha la situazione che hai descritto è illustrata nel grafico seguente:

https://www.wolframalpha.com/input/?i=(x%2B3)%5E2%2F3%5E2%2B(y-4)%5E2%2F(2.5)%5E2+%3D+1+and+(x%2B1.3)%5E2%2B(y-6.4)%5E2%3D(1.2)%5E2

Ora non ho tempo di guardarci, ma direi che affinché ci siano necessariamente le 2 intersezioni desiderate devi imporre che sia verificata un'opportuna condizione (disequazione) coinvolgente le quantità positive $a$, $b$ e $r$ ($r < b < a$ nel caso che hai esemplificato) e la distanza $d = sqrt{(x_0 - x_C)^2 + (y_0 - y_C)^2}$ fra i centri delle due figure geometriche, tenendo conto che $r = sqrt{x_C^2 + y_C^2 - c}$ (nel caso che hai esemplificato $c = 41.21$), e che quindi deve essere $x_C^2 + y_C^2 - c \ge 0$ (nel caso $= 0$ la circonferenza degenera nel suo centro $C$), similmente a quanto accade per la mutua posizione fra due circonferenze.
pilloeffe
Cannot live without
Cannot live without
 
Messaggio: 23 di 10581
Iscritto il: 07/02/2017, 15:45
Località: La Maddalena - Modena

Re: Intersezione ellisse con circonferenza per 2 punti

Messaggioda RobertoMor1980 » 13/03/2017, 17:49

Allora io semplicemente le ho messe a sistema le 2 equazioni ed ho utilizzato la stessa procedura descritta qui, ma anzichè mettere l'equazione di un'altra ellisse ho messo quella di una circonferenza:
https://www.matematicamente.it/appunti/ ... ne-ellisse
Il problema è che quando arrivo ad ottenere l'equazione di 2° grado ad una incognita per poi calcolare le 2 incognite x, il delta mi esce minore di zero!
Vorrei darti il file di excel che ho fatto, ma non so come fare!
RobertoMor1980
Starting Member
Starting Member
 
Messaggio: 3 di 10
Iscritto il: 12/03/2017, 17:28


Torna a Analisi matematica di base

Chi c’è in linea

Visitano il forum: gabriella127 e 1 ospite