マンデルブロの3Dは宇宙戦闘機

2022/10/13

フラクタル

マンデルブロやジュリアなどのフラクタルの魅力にとりつかれ、これを3Dにしたいと考えた人々がいた。


マンデルブロやジュリアは複素力学系によって描かれる図形なので、必然的に複素平面、つまり二次元平面での画像となる。


これを3次元に拡張しようとすると、複素数に代わって、x,y,z 3つの要素からなる数と、その演算(加算、乗算、べき乗)を定義しなければならない。


mandelbulb 


Daniel White と Paul Nylander の二人は、複素数に代えて3次元のベクトル演算を使うことで、マンデルブロやジュリアの三次元化を行い、それをmandelbulbと名付けた。マンデルブロに対応するのは下のようなものになる。なんとなくマンデルブロの名残があるのがわかる。この物体をz=0の平面で切断すると、マンデルブロになる。

下の2つの違いは、三次元表面の材質である。




3次元への拡張


マンデルブロでは以下のような漸化式を使っている。

\[Z_{n+1}=Z_{n}^{2}+C\]

\[Z_{0}=0\]

\[Z=x+iy\]

\[C=u+iv\]

これをマンデルバルブでは次のように拡張する。\((x,y,z)\)は三次元のベクトルである。

\[Z_{n+1}=Z_{n}^{2}+C\]

\[Z_{0}=(0,0,0)\]

\[Z=(x,y,z)\]

\[C=(u,v,w)\]

そして加算やべき乗は次のようなベクトル演算として定義する。二次元との対比で説明した。べき乗についてはベクトルを極座標で表現している。


加算はベクトルの和であり、べき乗はベクトルの絶対値を二乗し、2つの角度に二倍にする。これにより複素数演算の拡張になっている。




このような拡張を行って3次元でマンデルブロを計算したのが、上で示したような物体である。


さらなる拡張


これだけでは今ひとつ面白くない。ということで、漸化式そのものをいろいろと変えると、興味深い物体が出てくる。たとえば以下のような漸化式を使う。2乗ではなく8乗にしただけだが、これで出てくるものが興味深い(下図)

\[Z_{n+1}=Z_{n}^{8}+C\]






こんな形で様々な漸化式を使うことで、実に複雑な物体を描画することが可能となる。その一例を以下に示す。






ソフトウエア


このような図形を描くためのソフトウエアがいくつかあり、その中で多くの作品が紹介されている。上の図は以下の2つのソフトで紹介されているものである。

mandelbulber

mandelbulb3D


おまけ


最後に3次元マンデルブロが宇宙船のように見えたので、アンドロメダ銀河を背景に飛行している様子を描いてみた。動画もあります。




いやー、本当にフラクタルの世界は奥が深い。