loop-animation

糸かけString Art

円周上の点 i から点 i×m へ糸を張る掛け算の糸かけで、両端の点が回転するにつれて包絡線の形が変わるループです。

Canvas 2D で、図形を 1 つずつ計算して描いています。初期設定で再生しています。

円周上の点 i から点 i×m へ糸を張る掛け算の糸かけ。両端の点がそれぞれ回り、包絡線が姿を変える

このシーンで作る

パラメータ、色、エフェクトを変えて、GIF・APNG・WebP・MP4・WebM で書き出せます。

どう計算しているか

  1. 円周を「点の数」n 等分し、i 番目の点から (i ×「掛ける数」) を n で割った余りの番号の点へ直線を引きます。多数の直線が重なり、その包絡線(直線の群れが接してできる曲線)にカージオイドなどの形が浮かびます。
  2. 始点の角度には 2π·「始点の回転」·t、終点の角度には 2π·「終点の回転」·t を足します。両端の回り方が違うと、包絡線が回転したり形を変えたりします。
  3. 「枠」が四角のときは、円周上の方向 (cos, sin) を max(|cos|, |sin|) で割り、同じ方向の正方形の辺上に点を移します。
  4. 「色を巡回」をオンにすると、番号をパレットの色数で割った余りで糸をグループ分けし、それぞれ別の色で描きます。
i → (i·m mod n),  θ = 2πi/n + 2π·speed·t

ループがつながる理由

「始点の回転」と「終点の回転」はどちらも整数なので、1 ループで両端の点がちょうど整数周して元の位置に戻ります。

調整できるパラメータ

形

点の数12 〜 400(初期値 160)
掛ける数2 〜 12(初期値 3)
大きさ0.3 〜 1.1(初期値 0.85)
枠円・四角
線幅0.25 〜 6(初期値 1.25)
線の濃さ0.05 〜 1(初期値 0.55)
色を巡回オン/オフ(初期値 オン)

動き

始点の回転-3 〜 3(初期値 1)
終点の回転-3 〜 3(初期値 0)

同じ分類のシーン(点・軌道)