観測 009
金魚
Kingyo — Goldfish
画かボタンを押すと、点が減ります。40,000 → 625 → 40 → 1 の次は、40,000に戻ります。
少数点では、点を大きくし、残像を長くして通り道を見やすくしています。
「聴く」は、表示中の点の配置を音へ写します。点数を変えると音を作り直します。
五尾、それぞれ速さが違います。
尾は体より遅れて翻ります。
しなりは頭にはほとんどなく、後ろへ行くほど強くなります。
本物の魚の泳ぎ方と同じです。
頭を振って進む魚はいません。
五尾の速さは、そろえてあります。
ばらばらに見えますが、いつか必ず全員が同じ位置に戻ります。
そうでないと、この観測は閉じません。
式を読む・確かめる
(i, t,
m = i % 5, j = i / 5 | 0, b = j < 4600,
s = b ? j * .618034 % 1 : 1 + .5 * ((j - 4600) * .618034 % 1),
v = (j * .754878 % 1) * 2 - 1,
L = 55 + 9 * m, p = m * 1.9, w = [1, .5, 1.5, 2, .5][m],
A = t * w + p, R = 52 + 15 * m,
cx = 200 + R * cos(A), cy = 196 + R * sin(A) * .46 + 16 * (m - 2),
ax = -sin(A), ay = cos(A) * .46, q = hypot(ax, ay),
H = b ? L * .38 * sin(PI * s ** .7) ** .58
: L * (.05 + .44 * (s - 1) / .5) * (1 + .22 * sin(s * 9 - t * 5 + v * 3)),
Y = L * .12 * s ** 1.8 * sin(s * 2.6 - t * 4 + p) + v * H,
X = L * (s - .45),
Q = [cx + (X * ax - Y * ay) / q, cy + (X * ay + Y * ax) / q],
Dx = 200 + 64 * sin(t + 1.83) + 22 * sin(t * 2 + 3.11),
Dy = 200 + 34 * cos(t + 2.38) + 16 * sin(t * 3 + 1.83)
) => [Dx + (Q[0] - 200) * .68, Dy + (Q[1] - 200) * .68]
この式の指紋
sha256:98ec897e4468412342a85aefa6ce9700f3c6e5de1dc1ea4b5c889e077e856895
同じ点番号と時刻を渡すと、同じ座標が得られます。
残像や点の見え方は、描画設定と端末によって変わります。
上のボタンで式をそのまま持ち出せます。手元で数え直すなら:
pbpaste > f.txt && printf %s "$(cat f.txt)" | shasum -a 256
持ち帰って走らせてください。式を変えると、どんな姿になるでしょう。 この式を、その場で走らせて書き換える →