Una funzione 2D è una linea curva definita dall’equazione:
y=f(x)
per cui ad ogni valore di x corrisponde soltanto un unico valore di y.
La funzione:
y=f(k*x) (compressione in orizzontale di k)
si ottiene dalla precedente e rappresenta la stessa curva che viene compressa verso l’asse y,
infatti per x=xo e per x=xo/k le due funzioni forniscono rispettivamente lo stesso valore di y.
Se k fosse minore di 1, allora la curva su dilaterebbe.
Praticamente porre k*x al posto di x equivale al comando 2D:
mul2 1,1/k
La funzione:
y=f(x-v) (traslazione in orizzontale di v)
si ottiene dalla y=f(x) e rappresenta la stessa curva che viene spostata verso la direzione positiva dell’asse x, che indichiamo come x+
Porre x-v al posto di x equivale dunque al comando 2D:
add2 v,0
La funzione:
y=h+f(x) (traslazione in verticale di h)
equivale al comando 2D applicato alla y=f(x) :
add2 0,h
La funzione:
y=m*f(x) (dilatazione in verticale del fattore m)
equivale al comando 2D applicato alla y=f(x) :
mul2 1,m
La funzione:
y=f(-x) (specchiatura in orizzontale)
equivale al comando 2D applicato alla y=f(x) :
mul2 -1,1
La funzione:
y=-f(x) (specchiatura in verticale)
equivale al comando 2D applicato alla y=f(x) :
mul2 1,-1
La funzione:
y=-f(-x) (doppia specchiatura, in verticale e in orizzontale)
equivale al comando 2D applicato alla y=f(x) :
rot2 180
L’equazione della sinusoide è:
y=sin (x)
dove per x=0, x=180, x=360 risulta y=0; mentre per x=90 risulta y=1 (max), per x=270 risulta y=-1 (min)
Nell’intervallo di x: (0,180) si ha la campata positiva; nell’intervallo di x: (180,360) si ha la campata negativa.
In base alle considerazioni precedenti la funzione:
y=Am*sin(360/L*(x-v))
presenta una semi-ampiezza di oscillazione=Am , una lunghezza d’onda=L e risulta traslata di v verso x+
Se l’intorno di definizione per x è (v,v+n*L), la traduzione della curva in GDL 2D è:
!inizio script: inserire i valori per i parametri
m= !definizione della curva= parti in cui è divisa una intera sinusoide=campata positiva+negativa
n= !numero campate
Am= !semi-ampiezza di oscillazione=altezza di una singola campata
Lt= !lunghezza totale=L*n, L=Lt/n
ox= !offset x, corrispondente al punto di inizio sopra indicato con v
for i=0 to m*n-1
line2 ox+Lt/(m*n)*i, Am*sin(360* i/m ), != Am*sin(360/L*( ox+L/m*i - ox))
ox+Lt/(m*n)*(i+1),Am*sin(360*(i+1)/m)
next i
line2 ox,0,ox+Lt,0 !asse della curva, si può omettere
!fine script------------------------------------------------------------------------
Infatti al posto della x occorre inserire il valore ox+L/m*i=ox+Lt/(m*n)*i