そんな気の子。

たけのこ、たけのこ。

20210610 ものづくり

記事が公開されました。

 

 

窓文字シミュレーターはここから遊べます。

 

 

Twitterでしつこいぐらい宣伝してますけれども、本当に作るのが大変だった。貴重な休みを費やして出来た作品。

 

f:id:horicun:20210611001600j:image

 

この「ゴニョゴニョ」の一文に実際は15時間ぐらいの作業が込められている。そんなに大変ならやらなきゃいいじゃんと思うかもしれないし本当にそうなのだが、楽しいからしょうがない。日曜プログラミングは楽しいのだ。

 

記事が公開されたら説明しようと思っていた、窓文字シミュレーターの裏側について。

 

仕組みは単純。マウスの移動座標を取って、その座標が窓の内側にあるなら、その窓を表示する。真っ暗なビルの画像に窓の画像を乗せていくイメージだ。そのためには窓の当たり判定が必要となるが、一つ一つの窓の当たり判定を手動で設定している。これが面倒だった。HTML Imagemap GeneratorというWebツールを使って少しでも手動設定の手間を楽にしているが、それでも結局は手動である。窓は300個あるのでひとつ12秒でも1時間かかってしまう計算だ。ひぇ〜。実際は3時間ぐらいかかった。

 

作品をURLで共有する機能は、300個の窓のON/OFF情報を300桁の1と0の列で表現して、それを圧縮している。当初は自前で圧縮する関数を作っていたけど復元時に微妙にずれる不具合があったので、ここは素直にネットに出回っている圧縮関数を使った。このあたりは符号理論の知識だ。「大学の授業で習ったやつだ!」となるので面白い。学びの世界は日常と地続きなのだなあ。

 

次の作品は、段ボール製のミニチュアのビルの各部屋にLEDを仕込んで、今回のWebアプリと連動させたい。そのためには300個のLEDの ON/OFFを別々に制御する必要がある。ラズパイでそういうのできるのかなあ。勉強せねば。できたらMaker Faire Tokyoに出展しますね。