泳ぎを「アニメーション」ではなく物理で出しています。魚は体を進行波で送って進み
(振幅は尾に向かって増大)、尾の振り数は遊泳速度から決まります
(ストローハル数 St = f·2A/U ≈ 0.3。速く泳げば勝手に速く振れる)。
群れは分離・整列・結合+壁からの反発。青緑のラインは色素ではなく構造色なので、
見る角度で明るさと色相が変わります。
クリックしたところに餌が落ちます。計算も描画もすべて C++ → WASM。F キーで全画面。
水槽の大きさは画角から作っています(奥行きだけ 0.30m 固定)。床・水面・左右のガラスが
画面に入らない大きさに、魚が画面の外へ出入りできるぶんの水を足したもの。だから
画角を 1.5m まで広げても「水の中を覗いている」ままです。匹数ではなく密度で持つので、
寄っても引いても混み具合は同じに見えます(いまの容量と匹数は下に出ます)。