015 · トリック

xor

XOR で格子を塗る

各マスの色を座標だけから決める格子。乱数もノイズも使わず、横の番号 x と縦の番号 y を ビット演算で混ぜた値を濃さに使う。

仕組みはビット場と、代数で対称を作るのノートにある。ここで足したのは見た目とランダム化。

混ぜ方は5種の式から毎回ひとつ選ぶ。(x^y)+t((x&y)*2)^t(x|y)+tx^y^(x&t)((x+t)^(y+t))+(x&y)。式が違えば三角の入れ子の骨格ごと変わる。

値は下位5〜6ビットを取り、紙・薄灰・濃灰・墨の4階調へ量子化する。連続濃淡でなく4色に丸めると境目が立ち、織物の柄に近づく。

開始時に scale(1〜3倍の拡大)、offX/offY(座標オフセット)、speed(正逆どちらに流れるか)をランダムに振る。同じ式でも見える窓と流れる向きが毎回変わる。

セルは2px。盤面いっぱいに細かく敷き、accumulator に 0.5 ずつ足して切り捨てた t で進めるので、流れが速すぎず止まらない。状態はこのフレーム番号ひとつきり。