# Un esempio di trasformazione:    z -> z*(1+2i)+1.5+3i
source("http://macosa.dima.unige.it/r.R")
dev.new(width=4.8,height=2.4)
rowcol(1,2)
Box_(-2,5, -1,6)
x1 = y1 = x2 = y2 = x3 = y3 = x4 = y4 = NULL
# Un esempio di trasformazione:    z -> z*(1+2i)+1.5+3i
# Trasformo il rettangolo con lati orizzontali e verticali
# largo 2 alto 1 centrato in O
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] = 1; 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)
#
T = function(z) z*(1+2i)+1.5+3i
# 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)
Box_(-2,5, -1,6)
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)