陰陽なJulia集合を逆にたどる
いつもの世界を タテ ヨコ ナナメにのぞいてみてごらん 希望 探すなら
初めて娘にプレゼントしたDVDの歌詞。 日々、6才の子供に説明できているだろうか?
本記事の内容
- ジュリア集合が☯️マークに見えた。
- 「分けて分け合う」のたとえに使いたい。
- 理解のために逆写像をJavaScriptで動かしてみた。
- 四元数のステレオ投影もやってみた。
- Vanilla JS + threejs
背景
最近、時代のエネルギーを「粒がリズミカルに重なり合い、統合する」ようなイメージで思考していた。
- ☯️陰陽マーク、曖昧な境界、交わり、重なり、ランダム、リズミカル、分割、融合…
ジュリア集合の発散判定がふと頭に浮かんだ。
動画GIF:Julia集合(模様はcの値で変わる)
参考:【ジュリア集合 - Wikipedia】
参考サイト:円を塗りつぶしてる”点”たちはどこからやってきたのか?
以下、私の理解。
- ↓の映像はジュリア集合にあった点が、発散せずに「円の中に収まっている」様子の”逆再生”。
- 動画の最後の複雑な模様は、そのまま100回くらい繰り返した場合。
参考サイトでは下記のような説明。
- 円は漸化式の結果の総合であり、ジュリア集合はその起源
- 動画の円上の点は、ジュリア集合の点を順方向に何度も反復した結果
- それ以外の点は発散するので除外される
- 反復計算:自乗と並行移動を繰り返す。
# 反復(n = 0, 1, 2, …) for n in 0, 1, 2, …: z[n+1] = (z[n])^2 + c
- 動画の円上の点は、ジュリア集合の点を順方向に何度も反復した結果
- 逆に言えば、「円に並んでいる各点」を逆写像すれば、もともとどのジュリア集合上の点から来たかがわかる。
- 逆写像:円を作った過程を逆戻り
- 定数cの分だけ引き戻し、ルートする(平方根を求める)、を繰り返す。
- 逆写像:円を作った過程を逆戻り
感想:
☯️陰陽マークのように見える。
円の分割(平方根による角度が半分になる)と反転コピー(マイナスの平方根)の箇所が。
発散しそうでしない境界で複雑な模様になる。
「境界が曖昧な地点」=「創造が生まれる土壌」という直感にまた一つ。
発散の判定には、ノルム(長さの絶対値)だけあれば良くて、でも、計算には角度(回転方向)が必要で、なので円として扱えてしまう。なので、描画平面と発散判定を同じ平面でできてしまう逆写像の理解に苦しんだ。
理解が曖昧なので、JavaScriptで円周からJulia集合への逆写像を動かしてみた。
2Dの逆写像App
Movie
3Dの逆写像App
2Dで見てたら、なんとなく、ドリフトは時間、発散と収束の境界、、、と思った。
なので、3Dでもやってみた。
が、思ったほどでも。。。
Movie
App
- 動かし方
- Runで開始します
- マウスでドラッグするとカメラが回転します
- 2D viewボタンで真上からの視点になります
- うまく動かないとき or ウインドウサイズで動かしたい時はこちら
ジュリア集合:パイと粉砂糖の比喩
円をパイにたとえると、
パイの上に粉砂糖をばらまき、回転(=二乗)と傾き(=平行移動)を繰り返す。
- 二乗操作(z → z^2):
パイを高速で回転させると、粉砂糖の粒一つ一つは、パイの中心から見た向き(角度)が2倍になり、中心からの距離は二乗されるように飛び跳ねる。 - 定数 c(平行移動):
パイは常に一定方向にわずかに傾き続けるため、回転後の粉砂糖は毎回その傾き分だけまとめて平行移動。 - 発散判定:
回転と傾きの結果、パイの縁を越えて落ちた粉砂糖はこぼれて二度とパイの上には戻らない。
どの粒が最後まで残るかを見て、残った粒のもとあった場所が 充填Julia 集合に対応。 つまり、パイに残った粉砂糖は、ジュリア集合の位置にあった。
四元数のステレオ投影App
四元数のステレオ投影なら☯️陰陽マークに似てることを伝えられそう、、、な気がしたのでやってみた。
- 全画面用:【四元数ステレオ投影ビジュアライザ】
- 動かし方
- マウスでドラッグするとカメラが回転します。
- 画面右上の「設定」ボタンで動きを確認しながら調整ができます。
- 動かし方
関連
-
参考:【陰陽マーク? 「量子もつれ」をリアルタイムに可視化することに成功 国際チームが23年に発表:ちょっと昔のInnovative Tech - ITmedia NEWS】
-
Julia集合のズーム映像
- 3D:Julia Sets of the Mandelbulb (8k)