振り子の波Pendulum Wave
1ループの往復回数が1回ずつ違う振り子を並べ、揃っては崩れる波や渦のような模様をつくるループです。
どう計算しているか
- i 番目の振り子は周波数 f = 「最も遅い往復回数」 + i·「隣との差」で振動し、その振れは cos(2π f t) で表します。
- 「配置」が横一列なら、玉の縦位置を cos の値に「振れ幅」を掛けて決めます。放射なら i に応じた角度の方向へ、中心からの距離を cos の値に合わせて伸び縮みさせます。
- 振り子を選ぶと、cos の値を糸の角度に変換し、上の支点から吊るした玉の位置を sin・cos で求めます。
- 隣同士の周波数が少しずつ違うので位相が徐々にずれ、玉を結んだ線が波打ったりらせん状に見えたりします。ある瞬間にはすべての位相が揃い、一直線に戻ります。
y_i = A·cos(2π(base + i·step)·t)ループがつながる理由
各振り子の周波数がすべて整数なので、t = 1 で全員がちょうど整数回往復し、t = 0 と同じ一直線に揃った状態に戻ります。
調整できるパラメータ
形
| 配置 | 横一列・放射・振り子 |
|---|---|
| 本数 | 4 〜 80(初期値 15) |
| 振れ幅 | 50 〜 480(初期値 300) |
| 玉の大きさ | 2 〜 40(初期値 11) |
| 玉を線で結ぶ | オン/オフ(初期値 オン) |
| 糸を描く | オン/オフ(初期値 オフ) |
| 線幅 | 0.5 〜 8(初期値 2) |
動き
| 最も遅い往復回数 | 1 〜 20(初期値 1) |
|---|---|
| 隣との差 | 1 〜 3(初期値 1) |
同じ分類のシーン(点・軌道)
- 点・公転Dot Orbit格子に並んだ点がそれぞれ小さな円や往復の軌道をたどり、点ごとの位相のずれで波紋や渦の錯視が生まれるループです。
- 軌道上の点Lissajous Dots縦と横で周波数の異なる正弦波がつくるリサージュ曲線の上を、たくさんの点が等間隔に並んで行進するループです。
- 周転円・フーリエEpicycles回転する円をいくつも連ねた腕の先端が、整数周波数の重ね合わせによって対称なロゼット模様を描き続けるループです。
- 糸かけString Art円周上の点 i から点 i×m へ糸を張る掛け算の糸かけで、両端の点が回転するにつれて包絡線の形が変わるループです。
- 群れFlock小さな矢じりの群れが整数周波数の軌道に沿って泳ぎ、集まったり散ったりを繰り返す魚群のようなループです。
- ニュートンのゆりかごNewton's Cradle端の玉が振り下ろされてぶつかると反対側の玉が跳ね上がる、ニュートンのゆりかごを周期関数で再現したループです。
- 惑星の軌道Orbital Dance公転周期が整数比の2つの惑星を一定間隔で線で結び、線の残像が花のような模様を描いていくループです。
- パーティクルの図形Particle Shapes点が集まって図形をつくり、渦を巻きながら散らばって次の図形へ集まり直すことを繰り返すループです。
- SDF・シェーダーGLMetaballs整数周波数で周回する複数の円の距離関数をなめらかに合成し、液体のように溶け合う形を描くシェーダーのループです。
- ボロノイ・シェーダーGLVoronoi Cells整数周波数で漂う母点から最も近い点ごとに画面を分けるボロノイ分割を、細胞や境界線、等距離線で描くシェーダーのループです。