HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Esempi di funzioni 2D  (Letto 2238 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
Esempi di funzioni 2D
« il: 25 Giugno 2012, 01:49 »
Una funzione
 y=f(x)
definita nell’intervallo delle x:  (ox, ox+L)
si traduce nel linguaggio GDL:
n=    !numero di suddivisioni dell’intervallo:  n+1 punti, n  segmenti
for i=0  to  n-1
line2    ox+L/n*i,          f(ox+L/n*i ) ,
           ox+L/n*(i+1),     f(ox+L/n*(i+1) )
next i

Costruiamo la parabola nella sua forma più semplice: y=x^2  con intervallo di definizione (-L/2,L/2)
La traduzione in GDL:
n=    !numero di suddivisioni dell’intervallo:  n+1 punti, n  segmenti
L=    !ampiezza intervallo
for i=0  to  n-1
line2    -L/2+L/n*i,       (-L/2+L/n*i)^2,
        -L/2+L/n*(i+1),    (-L/2+L/n*(i+1))^2
next i

Consideriamo ora la cissoide (Guido Zappa, geometria  analitica e proiettiva,1956, Roma, pag.93)
La cissoide si compone di due rami, ovvero di due funzioni di equazione:
y=x*sqr(x/(2*r-x)) e y=-x*sqr(x/(2*r-x)) con intervallo di definizione (0,L), L<2*r
La traduzione in GDL:
n=    !numero di suddivisioni dell’intervallo:  n+1 punti, n  segmenti
r=    !raggio crf che genera la cissoide
L=   !larghezza intervallo<2*r

for i=0  to  n-1
line2    L/n*i,          L/n*i*sqr( (L/n*i)/(2*r- L/n*i)),
           L/n*(i+1),     L/n*(i+1)*sqr( (L/n*(i+1))/(2*r- L/n*(i+1)))
next i  !ramo y+
for i=0  to  n-1
line2    L/n*i,          -L/n*i*sqr( (L/n*i)/(2*r- L/n*i)),
           L/n*(i+1),     -L/n*(i+1)*sqr( (L/n*(i+1))/(2*r- L/n*(i+1)))
next i !ramo y-

L’iperbole  (Zappa, op.cit., pag.71) ha equazione:
y=b/a*sqr(x^2-a^2)   (parte su y+)
y=-b/a*sqr(x^2-a^2)   (parte su y-)
con asintoti y=-b/a, y=b/a;    vertici in (-a,0),(a,0);  fuochi in (-sqr(a^2+b^2), sqr(a^2+b^2) )
definita in (-L-a,-a) che è il ramo di sinistra e in (a,L+a) che è il ramo di destra.
La traduzione in GDL:
n=    !numero di suddivisione degli intervalli
a=    !distanza vertice da O
an= !angolo asintoto rispetto x: an=atn(b/a), b=a*tan(an), b/a= tan(an)
L=   !larghezza intervallo
for i=0  to  n-1
line2    a+L/n*i,          tan(an)*sqr((a+L/n*i)^2-a^2),   
           a+L/n*(i+1),     tan(an)*sqr((a+L/n*(i+1))^2-a^2)   
next i  !ramo x+, parte y+
for i=0  to  n-1
line2    a+L/n*i,          -tan(an)*sqr((a+L/n*i)^2-a^2),   
           a+L/n*(i+1),     -tan(an)*sqr((a+L/n*(i+1))^2-a^2)   
next i  !ramo x+, parte y-
for i=0  to  n-1
line2    -a-L/n*i,          tan(an)*sqr((a+L/n*i)^2-a^2),   
          -a-L/n*(i+1),     tan(an)*sqr((a+L/n*(i+1))^2-a^2)   
next i  !ramo x-, parte y+
for i=0  to  n-1
line2    -a-L/n*i,          -tan(an)*sqr((a+L/n*i)^2-a^2),   
           -a-L/n*(i+1),     -tan(an)*sqr((a+L/n*(i+1))^2-a^2)   
next i  !ramo x-, parte y-

L’ellisse  ha equazione:
y=b/a*sqr(a^2- x^2)   (parte su y+)
y=-b/a*sqr(a^2- x^2)   (parte su y-)
vertici in (-a,0),(a,0);  fuochi in (-sqr(a^2-b^2), sqr(a^2-b^2) ) con a>b (asse maggiore su x)
definita in (-L/2,L/2), con L=2*a.
La traduzione in GDL:
n=    !numero di suddivisione degli intervalli
a=    !semiasse maggiore
b=   !semiasse minore: b<=a, se b=a di ha crf
L=2*a
for i=0  to  n-1
line2    -L/2+L/n*i,           b/a*sqr(abs(a^2-(-L/2+L/n*i)^2)),   
           -L/2+L/n*(i+1),     b/a*sqr (abs (a^2-(-L/2+L/n*(i+1))^2)) 
next i  !parte y+
for i=0  to  n-1
line2    -L/2+L/n*i,          -b/a*sqr(abs(a^2-(-L/2+L/n*i)^2)), 
         -L/2+L/n*(i+1),     -b/a*sqr (abs (a^2-(-L/2+L/n*(i+1))^2)) 
next i  !parte y-

Nota: l’ espressione abs (valore assoluto) è stata inserita per essere certi che i radicandi non siano negativi
« Ultima modifica: 25 Giugno 2012, 09:38 da marcomasetti »