loop-animation

ヘリンボーンHerringbone

杉綾模様に組んだ長方形のレンガが、長い辺を軸に1枚ずつ裏返って色が入れ替わっていく動きです。

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

杉綾に組んだレンガが、長い辺を軸に1枚ずつ裏返って色が入れ替わっていく

このシーンで作る

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

どう計算しているか

  1. 2:1 の横長レンガと縦長レンガを、斜めにずらした規則で交互に並べて杉綾(ヘリンボーン)模様を作ります。全体を「全体の角度」だけ回転して描きます。
  2. 各レンガの中心位置から「位相のずれ方」で時間のずれを求め、u = fract(t − ずれ·「ずれ量」) にイージングを掛けます。
  3. cos(π·wave(e)) を使い、横長レンガは縦方向、縦長レンガは横方向の幅にその絶対値を掛けます。長い辺を軸に回る板を正面から見たように、幅が細くなってまた広がります。
  4. cos の値が負の間は裏面として別の色で塗ります。横長と縦長で表裏の色を逆にしているので、裏返ると色の並びが入れ替わります。「目地」はレンガの間のすき間の幅です。
w = |cos(π·wave(ease(u)))|,  u = fract(t − phase·spread)

ループがつながる理由

wave(e) = 0.5 − 0.5·cos(2πe) は e が0でも1でも0なので、各レンガは裏返ったあと表に戻って元の幅と色になります。時刻のずれは fract で1ループに1回巡ります。

調整できるパラメータ

形

レンガの短辺15 〜 120(初期値 42)
目地0 〜 0.3(初期値 0.08)
全体の角度-45 〜 45(初期値 45)

動き

位相のずれ方同時・放射・角度・渦巻き・斜め・横・縦・市松・ランダム
ずれ量0 〜 4(初期値 1)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

同じ分類のシーン(タイル・格子)