今日は台風襲来と聞いているが、今のところ平穏だ。 YouTube で適当なビデオを聴きながら会話(日本語)を DeepL に入力して英訳して遊んで時間を潰す。 Safety first. It’s never safe.

2:05 消灯。

8:00 目が覚める。やはり雨か。しかし休みでやることがないので二度寝。 いやなくらい深い眠りに沈む。夢の中で久しぶりに伯父全員に会う。今頃はこんなに若くないだろう。

12:00 起床。こんな天気だが洗濯機を動かす。納豆とおにぎりを食う。股が異様にかゆい。 洗濯が終わる前に PC を開く。

Twitter での対応をまた失敗した。目的の対応以外は同時にしないことだ。 でも今回の対応は絶対に必要なものだったのだ。もっと頭を使わないと。

  • LEGGENDARIA全譜面埋める - YouTube
    • 日本でグングニルをいちばんプレイする本チャンネル主人にしては珍しい曲を演奏している。
    • ARENA モードをちょくちょく混ぜていくのはいい考え。
  • WebGL2 3D Geometry - Lathe: コードをやる。
    • JavaScript の varlet, const になった。こちらの修正の作業が消える。
    • uv-grid.png をローカルディスクに保存しておく。カラフルな市松模様。 四隅のタイルにだけテクスチャー座標が (0, 0) のように文字列で記されている。
    • SVG を解析する関数は手を付けない。ここは学習目的と関係ない。
    • 曲線細分処理は、考え方はどの滑らかな曲線にも適用される一般的なものだ。
    • 関数 simplifyPoints 内の sqrt 呼び出しは工夫して回避できる。
    • いつの間にか ... 演算子が使われている。
    • コントローラーのイベントハンドラー設定は初めて出る。 イベントを付ける対象が windowgl.canvas に分かれるのか。これは初めて見た。 開始モノがキャンバスで、終了モノが親である window という意味だろう。 e.preventDefault() するのは開始時だけでいいのか。そうだろうか。
    • 関数 lerp はスカラー版とベクトル版がある。
    • スクリプトの最後は二次元ベクトル専用関数群を定義する名前空間 v2 で締める。
    • 実際に動かすと、マウスからの回転が思いのほかきれいに描画に適用されることに驚く。 コメントにあるようにかなりショボい座標変換なのだが。
    • テクスチャー座標修正版。ピンの根本にある文字列が読めるようになることで改善されたと判断できる。
    • 第三版(燭台)で法線に対応する。しかもシェーダーコードをかなり増やす。
    • よくわからない関数群が出てくる。すべて法線を計算するための機能だ。
    • SVG データをさっきのボウリングのピンに置き換えると少しおかしくなる。 xFlip = false だけではダメらしい。

14:30 WebGL の学習をいったん終える。外を見ると晴れてきたかもしれない。 天気予報をチェックすると、今の一瞬だけ雨が降っていないに過ぎないようだ。

あんパンを食う。

ビデオの残りを視聴。天気が悪くなってきた。15:40 外出。 イトーヨーカドー曳舟店で体温チェックするのを忘れてそのままスカイツリータウンへ移動。 トイレを済ませて地下鉄へ。

16:50 セガ船堀店。MJ 幻の旅客船東風。まず 5 クレ遊んでみる。 トップが一回もない。ましな配牌が来ない&他家の攻撃が早すぎる。捨牌一段目リーチがザラ。 あまりにもショボいのでトップを獲るまで続ける。

合計スコア -319.9
平均スコア -17.77

平均順位 3.00 着
トップ 0 回
二着 5 回
三着 8 回
ラス 5 回

アガリ率 8.51% (8)
アガリ飜平均 3.38
アガリ巡目平均 10.00 巡
振り込み率 5.32% (5)

さらに 5 クレで粘ったがこのザマ。和了率と放銃率がどちらも低いから、見る人が見れば言いたいことが伝わると思う。

あと、ゲーム中に隣の席に来たバアチャンが百円玉を入れてゲームを始めようとしても画面が変わらなくて困っていた。 他家からのリーチが入って頭をフル回転している私にではなく、店員に救いを求めていただきたい。

21:30 退店。雨ザーサー。地下鉄ルートで帰途につく。

22:25 ビッグエー墨田業平店。486 円。

  • 絹豆腐
  • 大盛りミートソース
  • シュークリーム
  • たっぷりコーンマヨパン
  • ツイストドーナツ
  • 小粒納豆 (3)

22:35 曳舟の部屋に戻る。シャワーを浴びる。蒸し暑い。 白ブリーフ一丁で PC を開く。晩飯。

昼間のコードを吟味する。

  • 関数 getPointsOnBezierCurveWithSplitting は再帰関数になっていて、 曲線を前半と後半に分割してそれ自身を呼び出す。 曲線が十分平坦な場合にその両端点を返すという構造だ。 分割は Bezier 曲線を構成する形で実装している。
  • 関数 simplifyPoints も着想が似ていることに気づく。
  • 関数 lathePoints は改訂が入るが、基本的には点の回転変換のはず。 問題はテクスチャー座標の決定だが、本来は弧長に基づいて正規化したいのだと読める。 もっとも、本物の弧長を計算することは、このプログラムでは行わない(ように工夫しているのだ)。

ああ時間がなくなった。