loop-animation

パーティクルの図形Particle Shapes

点が集まって図形をつくり、渦を巻きながら散らばって次の図形へ集まり直すことを繰り返すループです。

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

点が集まって図形をつくり、渦を巻いて散らばり、次の図形へ集まり直す

このシーンで作る

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

どう計算しているか

  1. 「図形 1」〜「図形 4」で選んだ図形(なしは飛ばす)の輪郭上に、「点の数」の点を等間隔に配置します。1 ループをこの図形の数で等分し、各区間で今の図形から次の図形へ移ります。
  2. 各区間の最初の「図形を保つ時間」の割合だけ図形の形で止まり、残りの前半で散らばった位置へ、後半で次の図形の対応する点へ移動します。移動にはイージングをかけた線形補間を使います。
  3. 散らばった位置は、乱数で決めた半径(「散らばる広さ」以内)と角度の極座標です。この角度に 2π·「渦の強さ」·t を足して回すので、点は渦を巻くように動きます。
p = lerp(A, S, ease(k)) → lerp(S, B, ease(k)),  S = r·e^{i(θ + 2π·swirl·t)}

ループがつながる理由

最後の区間は最後の図形から最初の図形へ戻る移動なので、t = 1 で最初の図形に揃います。「渦の強さ」は整数なので、散らばった位置の回転もちょうど整数周で一致します。

調整できるパラメータ

形

図形 1なし・丸・三角・四角・五角形・六角形・星・十字・線
図形 2なし・丸・三角・四角・五角形・六角形・星・十字・線
図形 3なし・丸・三角・四角・五角形・六角形・星・十字・線
図形 4なし・丸・三角・四角・五角形・六角形・星・十字・線
点の数20 〜 800(初期値 260)
点の大きさ1 〜 20(初期値 5)
図形の大きさ0.2 〜 1(初期値 0.75)

動き

図形を保つ時間0 〜 0.8(初期値 0.35)
散らばる広さ50 〜 700(初期値 380)
渦の強さ-3 〜 3(初期値 1)
シード0 〜 999(初期値 5)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

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