🌐 JA

🌀 マンデルブロ集合エクスプローラー

マンデルブロ集合の無限のディテールへ拡大していきましょう。どこでもクリックで拡大、Shift+クリックまたは右クリックで縮小、反復回数とカラーパレットをリアルタイムに調整できます。

200

キャンバスをクリックで拡大 · Shift+クリックまたは右クリックで縮小。

ガイド

詳しく見る

01

マンデルブロ集合とは?

マンデルブロ集合とは、反復 z → z² + c(z = 0 から開始)が無限に発散せず有界にとどまる複素数 c の集合です。集合内部の点は黒く、外部の点は無限大へ発散する速さに応じて着色されます。1980年に研究したブノワ・マンデルブロにちなんで名付けられ、あらゆるスケールで複雑な自己相似構造が繰り返される、フラクタルの最も有名な例です。
02

エクスプローラーの仕組み

各ピクセルの位置を複素数 c に変換し、絶対値が2を超える(発散確定)か反復上限に達するまで z² + c を反復します。発散回数が色を決めます。本ツールは最終的な絶対値から求めた小数の発散値を用いるスムース(連続)カラーリングを採用し、色の帯が硬いリングではなく滑らかにつながります。レンダリングは requestAnimationFrame で行方向のバンド単位に処理されるため、1000回反復でもページが固まりません。
03

美しい画像を得るコツ

深く拡大するほど反復回数を上げましょう。浅い表示は100〜200回で十分ですが、深い拡大では細いフィラメントを描くのに500〜1000回が必要です。最も見応えのある構造 — ミニチュアのマンデルブロ、渦、「タツノオトシゴ」の谷 — は黒い内部と色付きの外部の境界に沿って現れます。気に入った表示を見つけたら、PNG保存でキャンバス全解像度で書き出せます。

よくある質問

とても深く拡大すると画像が粗くなるのはなぜ?
拡大は倍精度浮動小数点に依存します。約10^13倍を超えると数値の精度が失われ、ディテールが粗くなります。これは標準的なJavaScriptの数値のハードウェア的な限界であり、不具合ではありません。リセットして別の領域を探索してください。
反復スライダーは何を変えるのですか?
ある点が集合内部とみなされるまでに行う z → z² + c ステップの最大回数を設定します。値が大きいほど境界の細部が現れますが、レンダリングは遅くなります。上限は1000です。
ジュリア集合と関係がありますか?
はい。マンデルブロ集合は実質的にすべてのジュリア集合の地図です。各点 c は1つのジュリア集合に対応し、マンデルブロ集合内部の c 値は連結したジュリア集合を生みます。ジュリア集合ジェネレーターで確かめてみてください。