万華鏡Kaleidoscope
扇形の中で図形を動かし、それを回転と鏡写しで円周に並べることで、万華鏡のような対称模様を作るループアニメーションです。
どう計算しているか
- 円を「分割数」個の扇形に分け、1つの扇形の中だけを描画できるようにクリップ(はみ出した部分を切り取る処理)します。
- 扇形の中には「シード」から決まる乱数で、基準の半径や揺れ幅、動きの周波数が異なる図形を「図形の数」だけ置きます。各図形の半径と角度は sin で揺れ、極座標から画面上の位置に直します。
- 同じ中身を角度を変えて全ての扇形に描きます。「鏡写し」がオンのときは1つおきに上下を反転して描くので、隣り合う扇形の境目が線対称になります。
- 「動きの速さ」は全ての周波数に掛かる倍率で、「全体の回転」は模様全体をゆっくり回します。
r = r0 + dr·sin(2π·fr·u), a = wedge·(0.5 + 0.45·sin(2π·fa·u))ループがつながる理由
図形の位置と向きは、周波数が整数の sin と回転だけで決まるので、1ループで必ず元の値に戻ります。全体の回転は模様の繰り返し単位(鏡写しなしなら扇形1つ、ありなら2つ、分割数が奇数で鏡写しなら1周)の整数倍だけ回すので、つなぎ目が見えません。
調整できるパラメータ
形
| 分割数 | 3 〜 24(初期値 8) |
|---|---|
| 鏡写し | オン/オフ(初期値 オン) |
| 図形 | 丸・四角・三角・六角形・ひし形・十字・星・リング・線・半円 |
| 図形の数 | 1 〜 30(初期値 9) |
| 大きさ | 10 〜 160(初期値 55) |
| シード | 0 〜 999(初期値 12) |
| 塗り | 塗り・線 |
| 線幅 | 0.5 〜 12(初期値 3) |
動き
| 全体の回転 | -2 〜 2(初期値 0) |
|---|---|
| 動きの速さ | 1 〜 4(初期値 1) |
同じ分類のシーン(放射・回転)
- 放射・回転対称Polar Rings同心円上に並んだ図形がリングごとに少しずつ遅れて回り、渦や花のような模様が浮かんでは消えるループアニメーションです。
- 形状モーフShape Morph丸・三角・四角などの輪郭を同じ数の点で表し、点どうしを補間して形を滑らかに変形させ続けるループアニメーションです。
- 入れ子の回転Twist Stack大きさの違う多角形を中心にそろえて重ね、内側ほど遅れて回すことで、ねじれた渦が現れてはほどけるループアニメーションです。
- 葉序・螺旋Phyllotaxis黄金角ずつ角度をずらして点を並べ、ひまわりの種のような螺旋模様が中心から湧き出して外へ流れ続けるループアニメーションです。
- 無限ズームInfinite Zoom多角形の辺上の点を結んで一回り小さい多角形を作る操作を繰り返し、その入れ子の渦へ無限に吸い込まれていくループアニメーションです。
- 遠近トンネルPerspective Tunnel遠くから迫ってくるリングの列を遠近法で描き、うねる軸とねじれでくねった筒の中を進んでいるように見せるループアニメーションです。
- 花の開閉Bloom何重にも重なった花弁が外側の層から時間差で開いては閉じ、並べると花畑のように波打つループアニメーションです。
- 時計の針の群れClock Swarm格子状に並んだ時計の2本の針が一斉に回り、模様 A と模様 B の間を行き来するループアニメーションです。
- スピログラフSpirograph大きな歯車の内側や外側を小さな歯車が転がり、穴に差したペンが花模様を描いていくループアニメーションです。
- 吸い込まれる渦Black Hole極座標の格子が渦を巻きながら中心の穴へ吸い込まれ続け、中心に近いほど強くねじれるループアニメーションです。
- SDF・等高線GLContour Tunnel図形の距離関数を等高線の縞として描き、縞が中心から湧き出し続けながら2つの図形の間でモーフするループアニメーションです。