# Un esempio di trasformazione: z -> z*(cos(a)+sin(a)*1i) source("http://macosa.dima.unige.it/r.R") dev.new(width=4.8,height=2.4) rowcol(1,2) Box_(-4,4, -4,4) x1 = y1 = x2 = y2 = x3 = y3 = x4 = y4 = NULL # Trasformo il rettangolo con lati orizzontali e verticali # largo 2 alto 1 centrato in (2,0) c1 = "blue"; c2 = "red"; c3 = "green4"; c4 = "black" # traccio le 4 curve che formano la figura iniziale approssimandole # con 100 segmentini (sono i quattro lati del rettangolo) n = 100; i = 1:(n+1); j = i-1 x1[i] = 1+2/n*j; y1[i] = 1/2; segm(x1[i],y1[i],x1[i+1],y1[i+1],c1) x2[i] = x1[i]; y2[i] = -1/2; segm(x2[i],y2[i],x2[i+1],y2[i+1],c2) x3[i] = 3; y3[i] = -1/2+1/n*j; segm(x3[i],y3[i],x3[i+1],y3[i+1],c3) x4[i] = 1; y4[i] = y3[i]; segm(x4[i],y4[i],x4[i+1],y4[i+1],c4) # a = 2*pi/3; T = function(z) z*(cos(a)+sin(a)*1i) Box_(-4,4, -4,4) # prima le curve originali x1[i] = 1+2/n*j; y1[i] = 1/2; segm(x1[i],y1[i],x1[i+1],y1[i+1],c1) x2[i] = x1[i]; y2[i] = -1/2; segm(x2[i],y2[i],x2[i+1],y2[i+1],c2) x3[i] = 3; y3[i] = -1/2+1/n*j; segm(x3[i],y3[i],x3[i+1],y3[i+1],c3) x4[i] = 1; y4[i] = y3[i]; segm(x4[i],y4[i],x4[i+1],y4[i+1],c4) # le 4 curve trasformate mediante T cu = function(z1,z2,c) segm(Re(T(z1)),Im(T(z1)),Re(T(z2)),Im(T(z2)),c) z1 = x1[i]+1i*y1[i]; z2 = x1[i+1]+1i*y1[i+1]; cu(z1,z2,c1) z1 = x2[i]+1i*y2[i]; z2 = x2[i+1]+1i*y2[i+1]; cu(z1,z2,c2) z1 = x3[i]+1i*y3[i]; z2 = x3[i+1]+1i*y3[i+1]; cu(z1,z2,c3) z1 = x4[i]+1i*y4[i]; z2 = x4[i+1]+1i*y4[i+1]; cu(z1,z2,c4) # la nuova trasformazione, da completare: a = ...; T = function(z) z*(cos(a)+sin(a)*1i) cu = function(z1,z2,c) segm(Re(T(z1)),Im(T(z1)),Re(T(z2)),Im(T(z2)),c) z1 = x1[i]+1i*y1[i]; z2 = x1[i+1]+1i*y1[i+1]; cu(z1,z2,c1) z1 = x2[i]+1i*y2[i]; z2 = x2[i+1]+1i*y2[i+1]; cu(z1,z2,c2) z1 = x3[i]+1i*y3[i]; z2 = x3[i+1]+1i*y3[i+1]; cu(z1,z2,c3) z1 = x4[i]+1i*y4[i]; z2 = x4[i+1]+1i*y4[i+1]; cu(z1,z2,c4)