loop-animation

入れ子の回転Twist Stack

大きさの違う多角形を中心にそろえて重ね、内側ほど遅れて回すことで、ねじれた渦が現れてはほどけるループアニメーションです。

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

大小の多角形を重ね、内側ほど遅れて回る。ねじれた渦が現れてはほどける

このシーンで作る

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

どう計算しているか

  1. 「重ねる数」だけ正多角形を用意し、外側から内側へ半径を一定の割合で小さくしながら同じ中心に重ねます。
  2. 「交互に塗る」では前景色と背景色を交互に使って塗り重ねるので、縞模様の入れ子になります。「線」を選ぶと輪郭だけを描きます。
  3. 各多角形は、イージングをかけた進み具合に「1辺ぶんの対称角 2π/辺の数」と「回転ステップ」を掛けた角度だけ回ります。
  4. 「内側の遅れ」によって内側の多角形ほど開始が遅れるので、回転途中では層ごとの角度差が積み重なり、渦巻きのようなねじれが見えます。
e_k = ease(fract(t − k·lag)),  θ_k = e_k·turns·2π/n

ループがつながる理由

正多角形は 2π/辺の数 だけ回すと元の形とぴったり重なります。各層はこの角度の整数倍だけ回って止まり、時間差も fract で 0〜1 に巻き戻すので、最後のコマは最初と同じ絵になります。

調整できるパラメータ

形

辺の数3 〜 12(初期値 4)
重ねる数2 〜 60(初期値 22)
大きさ0.3 〜 1.6(初期値 1)
塗り交互に塗る・線
線幅0.5 〜 12(初期値 3)

動き

内側の遅れ0 〜 0.1(初期値 0.015)
回転ステップ1 〜 4(初期値 1)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

同じ分類のシーン(放射・回転)