loop-animation

擬似3D・六角形Cube Turn

六角形に見える立方体を敷き詰め、それぞれを120°ずつ回して面の色を入れ替え、凹凸が反転して見える錯視です。

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

六角形に見えるアイソメトリックの立方体が120°ずつ回り、凹凸が反転して見える錯視

このシーンで作る

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

どう計算しているか

  1. 立方体を斜めから見ると、正六角形の中心から3枚のひし形が出ている形になります。この3枚を、中心と六角形の頂点3つを結ぶ四角形として3色で塗り分けます。
  2. 六角形を蜂の巣状に並べます。横の間隔は √3·R、縦の間隔は 1.5·R で、奇数行だけ半個ぶん横にずらします。R は「分割数」から決まります。
  3. 各六角形の時刻 u を「位相のずれ方」と「ずれ量」で遅らせ、「1ループの回転回数」(3 または 6) 個の区間に分けます。区間ごとにイージングをかけて120°回すので、回ってから止まる動きを繰り返します。
  4. 回転の途中では「回転中の縮み」に応じて少し小さくなります。縮み具合は 0.5 − 0.5·cos(2πe) の山なりの曲線で、回り始めと回り終わりには元の大きさに戻ります。
seg = fract(t − off)·steps,  θ = (⌊seg⌋ + ease(seg mod 1))·120°

ループがつながる理由

120°は六角形の対称な角度なので、1回回るごとに形は元と重なり、3色の位置だけが入れ替わります。3回で360°、6回で720°回って色の並びも元に戻り、時刻は fract で折り返すため最後と最初がつながります。

調整できるパラメータ

形

分割数2 〜 20(初期値 7)
サイズ0.3 〜 1.3(初期値 0.98)

動き

1ループの回転回数3回(1周)・6回(2周)
回転中の縮み0 〜 1(初期値 0.25)
位相のずれ方同時・放射・角度・渦巻き・斜め・横・縦・市松・ランダム
ずれ量0 〜 4(初期値 0.5)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

同じ分類のシーン(立体・擬似3D)