!Inclinazione asse x e contrazione ambo x,y:

anx= !rotazione oraria dell'asse x:
!anx compreso (valori esclusi) tra 0 (non ruotata) e 90 (coincide con y-) ,cambiando segno non muta nulla
ax=  !stiramento lungo direzione iniziale asse x
ay=  !stiramento lungo direzione invariata asse y

al=acs(sqr(tan(anx)^2/(4+tan(anx)^2)))/2

rot2 al-90
mul2 1/tan(al),tan(al)
rot2 al
mul2 ax,ay
!inserire oggetto da inclinare
del 4

La formula equivale alla trasformazione:

xx= ax*x
yy=-ax*x*tan(anx)+ay*y

xx= ax/cos(anx)* cos(anx)*x
yy=-ax/cos(anx)* sin(anx)*x+ay*y

Ovvero il nuovo versore x inclinato si
è allungato di ax/cos(anx),
cioè le lunghezze unitarie sono ora portate ad ax. 

Per avere un effettivo modulo mx lungo l'asse x, occorre correggere:
anx= !rotazione oraria dell'asse x:
!anx compreso (valori esclusi) tra 0 (non ruotata) e 90 (coincide con y-) 
mx=  !allungamento lungo direzione finale asse x
ay=  !allungamento asse y

al=acs(sqr(tan(anx)^2/(4+tan(anx)^2)))/2

rot2 al-90
mul2 1/tan(al),tan(al)
rot2 al
mul2 mx*cos(anx),ay
!inserire oggetto da inclinare
del 4

Nota: la formula é valida per angoli (orari) in valore assoluto >0 e <90

!!!!!!!!!!!!!!!!!!!!!!!!

!Formula valida per angoli orari anx tra 0 e  -180:
if abs(anx)>90 then kk=-1 else kk=1
if abs(anx)>90 then anx=180-abs(anx)
al=acs(sqr(tan(anx)^2/(4+tan(anx)^2)))/2
mul2 kk,1
rot2 al-90
mul2 1/tan(al),tan(al)
rot2 al
mul2 mx*cos(anx), 1
!inserire oggetto da inclinare
del 5

!Formula alternativa per stesso risultato:
if abs(anx)>90 then anx=180-abs(anx)
rot2  anx
al=acs(sqr(tan(anx)^2/(4+tan(anx)^2)))/2
mul2   sgn(anx), 1
rot2 al-90
mul2 tan(al),1/tan(al)
rot2 al
mul2   -mx, cos(anx)
gosub 1
del 6

!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!

!Inclinazione asse y e contrazione ambo x,y:

any= !rotazione oraria dell'asse y:
!any compreso (valori esclusi) tra 0 (non ruotata) e 90 (coincide con x+) 
ax=  !allungamento asse x
ay=  !allungamento asse y

al=acs(sqr(tan(any)^2/(4+tan(any)^2)))/2

rot2 al-90
mul2 tan(al),1/tan(al)
rot2 al
mul2 ax,ay
!inserire oggetto da inclinare
del 4

La formula equivale alla trasformazione:
xx=ax*x+ay*y*tan(any)
yy=     ay*y

xx=ax*x+ay/cos(any)* sin(any)*y
yy=     ay/cos(any)* cos(any)*y

Ovvero il nuovo versore y inclinato si
è allungato di ay/cos(any),
cioè le altezze unitarie sono ora portate ad ay.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Variazione assi (distorsione)

Siano ax,ay e bx,by
le coordinate dei nuovi assi di riferimento a,b.
La trasformazione dal vecchio al nuovo sistema:
xx=x*ax+y*bx
yy=x*ay+y*by

Esempio: rotazione di an:
ax= cos(an)
ay= sin(an) !nuova posizione asse x

bx=-sin(an)
by= cos(an) !nuova posizione asse y

xx=x*cos(an)-y*sin(an)
yy=x*sin(an)+y*cos(an)

In coordinate polari:
mx=sqr(ax^2+ay^2)
anx=acs(ax/mx)*sgn(ay)
my=sqr(bx^2+by^2)
any=acs(bx/my)*sgn(by)
ax=mx*cos(anx)
ay=mx*sin(anx)
bx=my*cos(any)
by=my*sin(any)

!Formula indiretta
!anx>0, 360>any>anx, any-anx non 0 e non multiplo di 90

!coordinate polari nuove posizioni assi
anx=  !anomalia asse x
mx=   !nuova unità misura x  
any=  !anomalia asse y
my=   !nuova unità misura y 

rot2 anx
ayx=any-anx
al=acs(sqr(1/tan(ayx)^2/(4+1/tan(ayx)^2)))/2

if ayx>0   and ayx<90  then mul2  1, 1
if ayx>90  and ayx<180 then mul2 -1, 1
if ayx>180 and ayx<270 then mul2 -1,-1
if ayx>270 and ayx<360 then mul2  1,-1

rot2 al-90
mul2 tan(al),1/tan(al)
rot2 al
if ayx>0   and ayx<90  then mul2  mx, my*sin(ayx)
if ayx>90  and ayx<180 then mul2 -mx, my*sin(ayx)
if ayx>180 and ayx<270 then mul2 -mx,-my*sin(ayx)
if ayx>270 and ayx<360 then mul2  mx,-my*sin(ayx)
! inserire oggetto da distorcere secondo nuovi assi
del 6

!Formula alternativa, ang=scostamento dal retto, compreso tra -90 e 90
!ang=0 nuovi assi orto,ang>0 angolo tra nuovi assi acuto
anx=  !anomalia asse x
mx=   !nuova unità misura x  
any=  !anomalia asse y
my=   !nuova unità misura y 

ang=90-any+anx 
rot2 anx
al=acs(sqr(1/tan(any-anx)^2/(4+1/tan(any-anx)^2)))/2
mul2 sgn(ang), 1
rot2 al-90
mul2 tan(al),1/tan(al)
rot2 al
mul2 sgn(ang)*mx, my*sin(any-anx)

! inserire oggetto da distorcere secondo nuovi assi

del 6

!!!!Distorsione solo asse x,asse y invariato: my=1,any=90
!Variante 1, valori anx  entro  -90,90
anx=   !anomalia nuovo asse x rispetto vecchio x+
mx=    !nuova unità misura x
x0=
y0=    !Nuova posizione origine
 
add2 x0,y0
if anx=0 then
	mul2 mx,1
! inserire oggetto da distorcere secondo nuovo asse x
	del 2
else 
	rot2 anx
	al=acs(sqr(tan(anx)^2/(4+tan(anx)^2)))/2
	mul2   sgn(anx), 1
	rot2 al-90
	mul2 tan(al),1/tan(al)
	rot2 al
	mul2   sgn(anx)*mx, cos(anx)
! inserire oggetto da distorcere secondo nuovo asse x
	del 7
endif