四次元プログラミング

僕のプログラムを某先生に読んでもらったら「四次元とはこういうことか、わかるようになったよ」と言われて、それは裏を返すと「四次元がわからない人には分からないプログラムになってしまっている」ということ。レイトレーシングの自作をした頃からそういう傾向があって、会社勤めで実務プログラムをやった経験から説明的なプログラムを書く癖がついて、仕様書を別に用意するよりプログラムそれ自体を分かりやすくをモットーにしています。そんでも、仕様書は丁寧に書いたほうが喜ばれる。そのへんが実務的プログラムから遠のいている遠因かも。


どうせ説明しても変な人と思われるので素数の研究がどうとかや四次元とはどういう概念とか、近ごろは口外しないのですが、ちょっとだけ書いてみようと思います。すごく一般的に言って三次元はxyzつまり「幅」「高さ」「奥行き」の三つの要素で空間が表現される、ということで、この時点で平面図から立体を想起出来る人というのは建築家などの立体作家に絞られるらしいです。


それで、四つ目に「時間」を持ってきて空間から時空にすると四次元なのですが、ちょっとそのまえの準備体操に時間をtとしてxytという三次元を考えてみましょう。もっというとxtの二次元でも良いです。実はxytの三次元はよくあるテレビゲームの世界そのものです。画面のxyに色々のキャラクターが描かれているものが、時間tが進むにつれひとりでに動きます。{x,y] = f(t)という時間関数で座標が決定されているのです。


もしかすると、プログラムを紐解くとonSceneReflesh(x++)とか書いてあるのかも知れませんが、僕はy=cos(t)とかいうようなプログラムを書きます。時間をコサインすると波の用にキャラクターがウネウネ動きます。最初に出てきた某先生は大学の教授相手に先生をするような先生で、その先生からすると「普通の頭はx++,cos(x)だろ」と言うのです。ようするに、キャラクターの動きを数式で表さずヒトコマヒトコマ動かすんだと言います。先生の先生の頭でそうなんだから、まあ、たとえばキャバクラに言ってとなりの女の子に時間をコサインして行列に入れるんだとか言っても、通じないのは仕方ないんだと諦める事にしました。


それでも恐れずに四次元の話をすると「あんた、初音ミクちゃんに時間を積分して四次元だと思ってるでしょ!」言われたり言われなかったり。


今日はキレイにオチたんじゃないの?