loop-animation

図と地の反転Flip Tiles

市松模様の正方形が90°回転し、回り終えるたびに図と地が入れ替わって、同じ模様が続いていく反転タイルです。

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

市松の四角が90°回転するたびに図と地が入れ替わる、終わらない反転タイル

このシーンで作る

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

どう計算しているか

  1. ループを前半と後半に分けます。前半は背景色の上に前景色の正方形を市松の片側だけ描き、後半は色を入れ替えて反対側のマスに描きます。
  2. 各正方形は中心のまわりで90°回転します。前景色の正方形が市松に並んだ絵と、背景色の正方形が残りのマスに並んだ絵は同じ模様なので、回り終えた瞬間に色を入れ替えても見た目は変わりません。
  3. 「位相のずれ方」で求めた値を0〜1に正規化して d とし、u = clamp(lt·(1 + 時間差) − 時間差·d) で各マスの進み具合を決めます。d が大きいマスほど遅れて回り始めます。
  4. 「回転中の大きさ」は sin(πe) を使って回転の途中だけ辺の長さを変えます。始まりと終わりでは元の大きさに戻ります。「交互に逆回転」をオンにすると奇数行が逆向きに回ります。
u = clamp(lt·(1 + s) − s·d),  θ = ease(u)·90°

ループがつながる理由

進み具合を clamp で0〜1に収めているので、どのマスも半ループの中で必ず回転を終えます。正方形は90°回すと元と同じ形になり、前半の終わりと後半の始まり、後半の終わりとループの始まりはどちらも図と地を入れ替えた同じ模様になります。

調整できるパラメータ

形

分割数2 〜 30(初期値 8)
回転中の大きさ0.5 〜 1.2(初期値 1)

動き

交互に逆回転オン/オフ(初期値 オン)
位相のずれ方同時・放射・角度・渦巻き・斜め・横・縦・市松・ランダム
時間差0 〜 3(初期値 0.6)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

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