球面の点Dot Sphere
球面に均等に並べた点を回転させ、緯度に沿った波で表面を脈打たせながら色の縞を流すアニメーションです。
どう計算しているか
- 点 i の高さを y = 1 − 2(i + 0.5)/n とし、水平方向の角度を i × 黄金角(約137.5°)ずつ進めます。こうすると、点が球面にほぼ均等に散らばります。
- 緯度に応じて半径を 1 + 脈打つ強さ·sin(2π(緯度·脈の細かさ − t)) 倍にします。こうして、膨らみが北から南へ流れる波を作ります。
- 球を縦軸まわりに「1ループの回転数」ぶん回し、「傾き」の角度だけ倒して、遠近感をつけて投影します。奥の点ほど小さくし、背景色に近づけます。
- 「流れる縞」では、緯度を「縞の数」で区切った帯ごとに色を割り当て、時間とともに色の番号をずらします。「螺旋」では水平方向の角度も色の番号に加えます。
y = 1 − 2(i+0.5)/n, φ = i·137.5°, k = 1 + A·sin 2π(lat·f − t)ループがつながる理由
脈の sin は t について周期1なので、1ループで1周期ぶん進みます。回転数は整数です。色の番号は1ループでちょうどパレットの色数ぶんずれるので、同じ色の並びに戻ります。
調整できるパラメータ
形
| 点の数 | 50 〜 3000(初期値 900) |
|---|---|
| 大きさ | 0.3 〜 1.1(初期値 0.8) |
| 点の大きさ | 0.5 〜 14(初期値 4) |
| 傾き | -1.5 〜 1.5(初期値 0.4) |
| 色分け | 流れる縞・螺旋・単色 |
| 縞の数 | 1 〜 16(初期値 6) |
動き
| 1ループの回転数 | 0 〜 3(初期値 1) |
|---|---|
| 脈打つ強さ | 0 〜 0.4(初期値 0.08) |
| 脈の細かさ | 1 〜 12(初期値 4) |
| 遠近感 | 0 〜 1(初期値 0.3) |
同じ分類のシーン(立体・擬似3D)
- 擬似3D・階段Iso Columns斜め上から見た四角い柱が格子状に並び、中心から外へ伝わる波に合わせて高さが上下するアニメーションです。
- 擬似3D・六角形Cube Turn六角形に見える立方体を敷き詰め、それぞれを120°ずつ回して面の色を入れ替え、凹凸が反転して見える錯視です。
- 階段Endless Stairs平行に並んだ階段をボールが一段ずつ跳ねて降り、カメラも同じ速さで追いかけるので、終わりなく続いて見える階段です。
- 転がる多角形Rolling Polygons正多角形が地面に接した角を支点に一辺ぶんずつ倒れて転がり、行ごとに時間差をつけて進んでいくアニメーションです。
- 多面体ワイヤーWire Solids正多面体の頂点と辺を3次元で回転させて画面に投影し、ワイヤーフレームとして描くアニメーションです。
- トーラスTorusドーナツ形(トーラス)の表面に並べた点や線を3次元で回転させて投影し、表面の模様を流すアニメーションです。
- 積み木の塔Block Towerアイソメトリックで描いた積み木の塔に上から1つずつ積み木が落ちて跳ね、塔全体が1段沈んで元の高さに戻るアニメーションです。
- ルービックキューブ風Cube Puzzle3×3の立体パズルの面をランダムに90°ずつ回して崩し、同じ手順を逆にたどって揃った状態に戻るアニメーションです。
- レイマーチング立体GLRaymarched Forms距離関数で定義した3D立体をレイマーチングで描き、球が溶け合ったり、箱がねじれたり、トーラスが回ったりする様子に陰影を付けるアニメーションです。