# Un esempio di trasformazione:    z -> z^2
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 = x5 = y5 = x6 = y6 = NULL
c1="blue"; c2="orange"; c3="green4"; c4="black"; c5="brown"; c6="red"
# traccio le curve che formano la figura iniziale approssimandole
# con 100 segmentini
n = 100; i = 1:(n+1); j = i-1
x1[i] = 2*cos(0+pi/n*j); y1[i] = 2*sin(0+pi/n*j); segm(x1[i],y1[i],x1[i+1],y1[i+1],c1)
x2[i] = 1.5*cos(0+pi/n*j); y2[i] = 1.5*sin(0+pi/n*j); segm(x2[i],y2[i],x2[i+1],y2[i+1],c2)
x3[i] = 1*cos(0+pi/n*j); y3[i] = 1*sin(0+pi/n*j); segm(x3[i],y3[i],x3[i+1],y3[i+1],c3)
x4[i] = 0.5*cos(0+pi/n*j); y4[i] = 0.5*sin(0+pi/n*j); segm(x4[i],y4[i],x4[i+1],y4[i+1],c4)
x5[i] = j*2/n; y5[i] = 0; segm(x5[i],y5[i],x5[i+1],y5[i+1],c5)
x6[i] = -j*2/n; y6[i] = 0; segm(x6[i],y6[i],x6[i+1],y6[i+1],c6)
#
T = function(z) z^2
# le curve trasformate mediante T
cu = function(z1,z2,c) segm(Re(T(z1)),Im(T(z1)),Re(T(z2)),Im(T(z2)),c)
Box_(-4,4, -4,4)
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)
z1 = x5[i]+1i*y5[i]; z2 = x5[i+1]+1i*y5[i+1]; cu(z1,z2,c5)
z1 = x6[i]+1i*y6[i]; z2 = x6[i+1]+1i*y6[i+1]; cu(z1,z2,c6)