HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Ellissi e prospettiva del cerchio  (Letto 3212 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

marcomasetti

  • Newbie
    ...sono qui da poco, il mio miglior amico è il pulsante RICERCA
  • *
  • Post: 183
Ellissi e prospettiva del cerchio
« il: 12 Maggio 2014, 21:56 »
L’ellisse è una curva di fondamentale importanza per il disegno.
Infatti generalmente i cerchi vengono visti come ellisse, e viceversa le ellissi possono essere percepite come cerchi. Solitamente la prospettiva di un cerchio è un ellisse (anche se in teoria può essere rappresentata da qualsiasi curva conica). Un cerchio posto sul piano orizzontale, di fronte all’osservatore, viene percepito come una ellisse schiacciata. L’equazione più semplice di una ellisse risulta essere:
a*x^2+b*y^2-1=0
In questo caso i suoi assi coincidono con gli assi coordinati.
Il cerchio posto sul piano orizzontale in posizione frontale può essere espresso in questo modo.
Se invece il cerchio risulta decentrato, cioè spostato su un lato, la sua immagine prospettica diventa una ellisse con assi inclinati.
L’equazione più semplice di una ellisse inclinata è:
a*x^2+b*y^2+c*x*y-1=0
Vogliamo determinare l’inclinazione e la lunghezza degli assi di una ellisse avente questo tipo di equazione.
Uno dei suoi due assi o diametri risulta inclinato, rispetto l’asse x, di:
al=atn( ( b-a- sqr(abs(a^2+b^2+c^2-2*a*b)) )/c )
ovvero l’asse appartiene alla retta di equazione:
y=m*x
m=( b-a- sqr(abs(a^2+b^2+c^2-2*a*b)) )/c
Infatti il sistema:
y=m*x
a*x^2+b*y^2+c*x*y=1
individua, in funzione della pendenza m, un punto x,y sull'ellisse.
Sostituendo si ottiene:
a*x^2+b*m^2*x^2+c*m*x=1
x^2=1/(a+b*m^2+c*m)
Il valore r^2=x^2+y^2=x^2*(1+m^2) risulta massimo o minimo sugli assi della ellisse:
r^2=x^2+y^2=x^2*(1+m^2)=(1+m^2)/(a+b*m^2+c*m)
Calcolando la derivata in funzione di m:
D( (1+m^2)/(a+b*m^2+c*m) )=2*m/(a+b*m^2+c*m)-(1+m^2)*(2*b*m+c)/(a+b*m^2+c*m)^2=0
si ricava:
c*m^2+(2*a-2*b)*m*-c=0
Le misure dei semiassi r1,r2 dunque sono:
m1=( b-a- sqr(abs(a^2+b^2+c^2-2*a*b)) )/c
r1=sqr((1+m1^2)/(a+b*m1^2+c*m1))
m2=( b-a+ sqr(abs(a^2+b^2+c^2-2*a*b)) )/c
r2=sqr((1+m2^2)/(a+b*m2^2+c*m2))

Non è possibile descrivere una curva, tramite lo script GDL, con l’equazione cartesiana del tipo f(x,y)=0. Infatti ci occorre l’espressione parametrica del tipo x=x(t),y=y(t). Nel caso di una espressione algebrica di grado 2, risolvendo l’equazione di secondo grado, possiamo però esplicitare un parametro, ottenendo due spezzoni di curva.

L’obiettivo che mi pongo ora è determinare una trasformazione che mi permetta di ottenere una ellisse prospettica a partire da movimenti del cerchio: CIRCLE2. Infatti nel testo 2D il cerchio, come l’ellisse che ne consegue, viene espresso in tal modo come curva continua e non come successione di un numero limitato di segmenti.

Come ho osservato una ellisse prospettica posta frontalmente si può ottenere semplicemente da un cerchio schiacciato:
mul2 a,b
circle2 0,0,1
del 1
Questo script descrive una ellisse orizzontale con centro O e semidiametri a,b. Consideriamo ora una serie di cerchi posti su un asse frontale. Il cerchio mediano avrà la forma di una ellisse semplicemente schiacciata, quelli laterali si trasformeranno in ellissi più allungate, ma con assi ruotati. Tuttavia le sezioni delle diverse ellissi, operate con rette orizzontali, presentano la medesima lunghezza, dato che la prospettiva mantiene le proporzioni lungo il medesimo piano frontale. Questo significa che le ellissi laterali si possono ricavare da quella centrale per slittamento. Vediamo come ottenere gli assi di una ellisse ricavata
da una ellisse iniziale orizzontale tramite slittamento.
L’ellisse originaria, centrata in O, abbia semiassi paralleli a x,y rispettivamente  Ax,By.
Slittando l'asse delle ordinate y, in modo da portare l’angolo tra gli assi coordinati x,y da 90° all'angolo di al su°, ricaviamo le trasformazioni:
xx= x+y/tan(al)
yy= y
Sostituendo nell’equazione dell’ellisse a*x^2+b*y^2=1, ricaviamo i valori per i termini noti:
a=1/Ax^2
b=1/(tan(al)^2*Ax^2)+1/By^2
c=-2/(tan(al)*Ax^2)

Dalle formule ricavate sopra abbiamo i valori della pendenza degli assi dell’ellisse:
m1=( b-a- sqr(abs(a^2+b^2+c^2-2*a*b)) )/c
m2=( b-a+ sqr(abs(a^2+b^2+c^2-2*a*b)) )/c
ed i valori dei semidiametri
r1=sqr((1+m1^2)/(a+b*m1^2+c*m1))
r2=sqr((1+m2^2)/(a+b*m2^2+c*m2))

Valori che possiamo applicare alle trasformazioni per ottenere dal cerchio l’ellisse slittata:
rot2 atn(m1)
mul2 r1,r2
circle2 0,0,1
del 2

Utilizzando poi queste trasformazioni e ragionando sui metodi descrittivi della prospettiva lineare, otteniamo la proiezione prospettica di una qualsiasi ellisse utilizzando il cerchio CIRCLE2.

Aprendo gli oggetti allegati è possibile approfondire il tema