マンデルブロ動画を歪ませる

library(fields) # for tim.colors
library(caTools) # for write.gif
munit<-10 # 解像度指定 (30は重い、20くらいが適当)
m = munit^2 # grid size
C = complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ), imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C = matrix(C,m,m)
L<-10
# 複素数zを0+0iから、1+0iに増やしたり
# |a+bi|一定で、偏角を0からpiに増やしたりする
#modul<-rep(0.2,L) # 偏角漸増(|a+bi|固定)
modul<-seq(from=0,to=1,length.out=L) # 実軸に長くする
#args<-seq(from=0,to=pi,length.out=L) # 偏角漸増)
args<-rep(4*pi/10,length.out=L) # 偏角固定
Y<-array(0,c(m,m,L))
for(i in 1:L){
 Z =complex(m=modul[i],a=args[i]) # z(n+1)=z(n)^2+Cのz
 K<-20
 X = array(0, c(m,m,K))
 for (k in 1:K) {
#X = array(0, c(m,m,20))
#for (k in 1:20) {
 Z = Z^2+C
 X[,,k] = exp(-abs(Z))
 }
 image(X[,,K], col=tim.colors(256)) # show final image in R
 Y[,,i]<-X[,,K]
}

write.gif(Y,"Mandelbrot.gif",col=tim.colors(256), delay=100)