Superellissi

francescomatraxia
Salve a tutti
ho una domanda da farvi (....e mi scuso in anticipo per la mia ignoranza)!!!
Sto lavorando con le super ellissi la cui funzione in_out è :
(x/a)^(2/n) + (y/b)^(2/n) = 1
dove le variabili sono x ed y mentre a,b,e sono delle costanti > 0;
il base al valore di "n" posso rappresentare (forme che vanno dal rettangolo all'asterroide


le corrispondenti equazioni parametriche sono:
x=a*(cos(alfa))^e;
y=b*(sen(alfa))^e;
dopo questa breve introduzione le espongo il mio problema:

consideriamo un punto esterno alla superficie della super ellisse p(x,y)
mi occorre trovare un punto sulla superellisse ( tale che retta passate per questi due punti passi pure per il centro della superellisse)
faccio un esempio:
se la mia super ellisse ha a=b ed n=1 ottengo un cerchio, prendo un generico punto esterno alla superellisse ( calcolo l'arcotangente di (y/x) (consideriamo solo il primo quadrante), pongo alfa= arctg(y/x) e dalle parametriche ottengo un punto corrispondente sulla super ellisse

che è quello che mi serve.....il punto ottenuto è l'intersezione tra la retta passante dall'orgine della superellisse e dal punto e la supeellisse stessa;

se "a" è diverso da "b" .....le cose non funzionano più, dove sbaglio ???

la retta passante per i due punti non passa più dall'origine della super ellisse!.....vi prego di darmi qualche spunto!
buona giornata e grazie a tutti!!!

[/img][img][/img]

Risposte
Sk_Anonymous
Supponendo che quella "e" sia in realta' una "n",il problema e'
risolvibile esattamente come l'hai descritto te.
Sia $P(x_o,y_o)$ il punto esterno alla curva ,che si suppone dato nel 1° quadrante e
posto $tan(alpha)=(y_o)/(x_o)$,si ha :
$sin(alpha)=(y_o)/sqrt((x_o)^2+(y_o)^2),cos(alpha)=(x_o)/sqrt((x_o)^2+(y_o)^2),$
Sostituendo nelle equazioni parametriche della curva si hanno le coordinate
del punto Q(x,y) di tale curva (sempre nel primo quadrante) che e' allineato
con O e P:
$x_Q=a*((x_o)/sqrt((x_o)^2+(y_o)^2))^n,y_Q=b*((y_o)/sqrt((x_o)^2+(y_o)^2))^n$
Archimede
Edit su suggerimento di francesomatraxia.Le formule esatte sono nel post successivo

francescomatraxia
Salve archimede, ti ringrazio per la disponibilità (scusa per la "e" al posto della "n"), c'è un errore in quello che hai scritto, hai invertito seno e coseno nella sostituzione nelle parametriche!
non è questo il problema!....se provi a fare un esempio numerico i dati non coincidono!
ho provato con a=10; b=20; n=1; (il centro della superellisse coincidente con l'origine del sistema di riferimento);
il punto P di coordinate (15.0 , 10.0)

il punto Q risulta avere le seguenti coordinate (8.32 , 11.094);
......non appartiene alla retta passante dall'origine della superellisse e dal punto P!
non lo so perchè!..non vorrei che bisogni effetturare qualche tipo scaling !
ho ricontrollato i passaggi diverse volte!
ripeto se a=b; ovviamente tutto quadra!

ti ringrazio ancora per la disponibilità!

francescomatraxia
ops scusami di nuovo!....non hai fatto nessun errore nella sostituzione nelle parametriche!....avrò bisogno di un paio di occhilai nuovi!, cmq...resta il problema descritto nel seguito del precendete messaggio! :oops:

Sk_Anonymous
Ho modificato il post precedente rifacendo i calcoli da un altro punto di vista.
Le formule esatte sono:
$x_Q=(ab)/(sqrt((root[n](a^2tan^2alpha)+root[n](b^2))^n$
$y_Q=(ab*tan alpha)/(sqrt((root[n](a^2tan^2alpha)+root[n](b^2))^n$

dove $tan alpha=(y_o)/(x_o$ essendo $x_o,y_o$ le coordinate del punto P esterno alla curva.
Nel caso particolare da te proposto di n=1,a=10,b=20,P(15,10) ( e quindi $tan alpha =2/3$) si ha:
$Q(3sqrt(10),2sqrt(10))=Q(9.4868,6.3245)$ che appartiene sicuramente
all'ellisse di equazione $(x^2)/(100)+(y^2)/(400)=1$ come potrai verificare.
Ciao.
Archimede

francescomatraxia
Archimede? GRAZIE GRAZIE GRAZIE ed ancora GRAZIE! Sei stato molto professionale e gentilissimo! MI hai tolto da un mare di guai! Funziona perfettamente! Sei una persona molto preparata!
Ti pregherei soltanto di farmi capire il ragionamento che hai fatto!
Grazie di nuovo!!!!!

Sk_Anonymous
Ho proceduto nella maniera classica ovvero intersecando la curva con
la retta y=mx ,dove m=$tanalpha=(y_o)/(x_o)$.
Scusami se non ti faccio tutti i passaggi .Il fatto e' che li avevo pure scritti in gran parte ma mio fratello ha avuto la bella idea di accendere il forno per farsi un panino
mentre erano in funzione lavatrici,riscaldamento ed altro.Scatto immediato del
differenziale e addio passaggi.Ora non ho proprio la forza di rifarli...
Archimede

francescomatraxia
va bene lo stesso! grazie archimede, così ho lo spunto per riprendere i passaggi, qunado avrò un pò di tempo!
Sei stato gentilissimo, buon sabato sera!

Sk_Anonymous
Dobbiamo risolvere il sistema:
$y=mx,root[n]((x/a)^2)+root[n]((y/b)^2)=1$ con $m=tanalpha=(y_o)/(x_o)$ Sostituendo:
$root[n]((x^2)/(a^2))+root[n]((m^2x^2)/(b^2)=1$
E riducendo a forma intera:
$root[n](b^2x^2)+root[n](a^2m^2x^2)=root[n](a^2b^2)$
Oppure:
$root[n](x^2)(root[n](b^2)+root[n](a^2m^2))=root[n](a^2b^2)$
Elevando ad n:
$x^2(root[n](b^2)+root[n](a^2m^2))^n=a^2b^2$
Estrendo la radice quadrata:
$xsqrt[(root[n](b^2)+root[n](a^2m^2))^n]=ab$
Da cui :
$x=(ab)/(sqrt[(root[n](b^2)+root[n](a^2m^2))^n])$
E poiche' $y=mx,m=tanalpha$ si ha in definitiva:
$x=(ab)/(sqrt[(root[n](b^2)+root[n](a^2tan^2alpha))^n]),y=(ab*tanalpha)/(sqrt[(root[n](b^2)+root[n](a^2tan^2alpha))^n])$$
Archimede

francescomatraxia
il tuo è stato un aiuto insostituibile! ancora grazie!!!!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.