LoginSignup
14
12

More than 5 years have passed since last update.

R言語でマンデルブロ集合のGIFアニメーション作成

Last updated at Posted at 2014-06-20

マンデルブロ集合

マンデルブロ集合(Mandelbrot Set)とは次の漸化式で定義される複素数列{Zn}n∈Nがn→∞の極限で無限大に発散しないという条件を満たす複素数cの集合です。
ここでは、フラクタル図形として描画してGIFアニメーションにします。

必要パッケージのインストール

あらかじめ、GIFアニメーション画像を作成するためのRパッケージをインストールします。

install.packages("caTools")

マンデルブロ集合(R言語ソースコード)

library(caTools)
j.colors = colorRampPalette(c("#000022", "#110066", "#3366AA", "#2200FF", "#55DDFF", "#6622FF", "#0022DD", "#22AAFF", "#00FFFF")) #統計グラフ用のパレットを使用します。色は適当に付けます。

m = 350 #画像のサイズ

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)
Z = 0 
X = array(0, c(m,m,15)) #15枚の発散を格納する配列

for (k in 1:15) { 
  Z = Z^2+C #漸化式
  X[,,k] = exp(-abs(Z)) #発散を配列に格納する
} 

write.gif(X, "mandelbrot_anime.gif", col=j.colors, delay=25)

mandelbrot_anime.gif

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12