#-----------------------------------------------------------------
# da https://www.roma1.infn.it/~dagos/LabC/piano_complesso.html
# 
# script per mostrare interessanti proprietà
# delle potenze dei numeri complessi 
# rappresentiamo 'i' nel piano complesso
#
# GdA maggio 2025
#----------------------------------------------------------------

salva.su.file = !TRUE
if (salva.su.file) png("potenze_nr_complessi.png")

# plot vuoto, con griglia
plot(NULL, xlim=c(-2,2), ylim=c(-2,2), xlab='Re()', ylab='Im()', asp=1, cex=2)
grid()

# numero complesso di partenza: radice quarta di 'i'
z = (0+1i)^(1/4)
Dt <- 0.2 
for (k in 1:16) {
   points(z^k, pch=19, col='blue')
   lines( c(0, Re(z^k)), c( 0, Im(z^k)), col='blue', lwd=2)
   Sys.sleep(Dt)
}
# nota: lwd determina lo spessore delle linee e lo cambiamo
#       per riuscire a vederle anche quando si sovrappongono

# cambiamo il nr di partenza e ripetiamo, con diverso colore
z = 1.05 * (0+1i)^(1/4)

for (k in 1:16) {
   points(z^k, pch=19, col='red')
   lines( c(0, Re(z^k)), c( 0, Im(z^k)), col='red')
   Sys.sleep(Dt)   
}

# ancora, con diverso fattore
z = 0.95 * (0+1i)^(1/4)

for (k in 1:16) {
   points(z^k, pch=19, col='green')
   lines( c(0, Re(z^k)), c( 0, Im(z^k)), col='green', lwd=3)
   Sys.sleep(Dt)   
}

if (salva.su.file) dev.off() # importante chiudere il 'device'
                             # solo allora il file sarà salvato
			     # nella directory di lavoro
