マンデルブロ集合を拡大しよう Mandelbrot Set Explorer
不思議な図形、マンデルブロ集合を拡大するシミュレーターを作りました。
使い方
拡大したい場所を左クリック(スマホならタップ)してみてください。
右クリック(スマホなら長押し)で、画像を縮小します。
画像を鮮明にしたい場合は、計算回数を増やしてください。
画像として保存のボタンを押すと、現在表示されている画像をpngファイルとして保存できます。
マンデルブロ集合の縁を拡大していくと、下の画像のように、渦のような花のような多彩な模様が現れます。

マンデルブロ集合とは
ここで、マンデルブロ集合について簡単に解説しておきましょう。
マンデルブロ集合というのは、複素数平面上の集合です。
複素数というのは、
・実数
・二乗するとマイナスになる数「虚数」
この二つを足し算した数です。
虚数 i×i = -1
複素数 a + b × i (a,bは実数)
複素数平面というのは、横に実数の軸、縦に虚数の軸を取った平面でした。

上の画像のように、例えば(1,2) という座標は、
1+2i という式に対応しています。
この複素数平面について、マンデルブロ集合は、以下の式で表されます。
$$z_{n+1} = z_n^2 + c$$
zもcも複素数です。
最初、zの値は0としておきます。
cには複素数平面上の各点の座標を用います。
(例えば(1,2)という点で計算するなら c = 1+2i)
平面上のcに対し、上の式をどんどん計算していきます。
$$z_0 = 0$$
$$z_1 = 0^2 + c = c$$
$$z_2 = c^2 + c$$
$$z_3 = (c^2 + c)^2 + c$$
$$・・・$$
このように計算を繰り返し、計算した値の絶対値を取って、
・値が発散していたらその点を黒く塗る
・値が発散しなければ、他の色で塗る
というふうに色分けしていくと、マンデルブロ集合を図示することができます。
私は大学生のころ、すっかりこのマンデルブロ集合の模様の美しさに取りつかれてしまいました。
いつか、自分でマンデルブロ集合を自由に拡大できるアプリを作ってみたいと思い、それがプログラミングを学ぶ原動力となったものです。