ごめん、無理

 実験が新しくなり、CGの実験になりました。
 しかし、初日からヘビーな実験内容。やることといえば、最初はチェック模様の地面を描くだけなんですが、ベクトルの設定だのベクトル計算だの…なにより、やってることがイメージしにくい。高校数学の時からそうなんですが、3次元は苦手なのです。…だったらCGの実験なんて取るなよって感じはしますが。どうだろう、実験をやってる人の半数以上が3つある行程のなか1つ終わったぐらいだと思います。俺は2つ目まで終わって、3つ目の草案はまとまってます。…でも、ここまで終わらせるのに19時まで居残りましたよ?


 (ちょっと数学ちっくな話題になります)
 実は、2つ目の行程(球体の表示)までは18時にはもう終わっていて、それからずっと3つ目について考えていたんですが、3つ目の行程(三角錐の表示)の重要なこととして、多面体を三次元空間でいかに表現するかというのがあったのです。例えば、平面ならx,y,zに関する一次方程式で表現できるし、曲面なら二次方程式でいけますね。この辺は理系の高校生以上の人ならわかってもらえるかと。じゃ、多面体はどうなんだと。パッと思いつくのは、平面の集合として記憶することです。実際、なんか教科書にソリッドモデルとかいうので、物体を平面と各面の頂点の集合で表現するという手法が紹介されてました。
 …で、それでやろうと思ったのですが、頂点は手計算で設定するにしても、面の方程式の係数の決定はどうしようと。いや、もちろん面の頂点がすべて求まっているならば、方程式をax+by+cz+d=0と置いて、各頂点の値を代入して連立方程式として解けます。…が、連立方程式を解くと簡単に言いますが、プログラム上で機械的にやるとなると、そんなに簡単なもんでもないんですよ。どれぐらいかというと、ほとんどそれだけを取り扱った授業があるぐらいです。だったら手計算で面の方程式も求めて設定すればいいじゃんという感じではありますが、それはそれで大変だっつーわけで。
 そんなわけで、あーでもないこーでもないとずっと悩んで、もうどうしようもないと思ったところで先生に聞いてみました。すると、頂点ベクトルが求まっていれば、そのベクトルの外積(それが表すのは頂点を含む面の法線ベクトル)により、その面の方程式の係数(ax+by+cz+d=0とおいたとしたら、a,b,c)が求まるそうです。a,b,cが求まっていれば、dはd=-ax-by-czとしてすぐに求められます。…マジすか。外積の順番には注意しないと行けないけどね。
 つーわけで、多面体の表現のしかたもわかったし、表示のしかたもおそらくはこんなもんだろうというのが頭のなかで固まってます。あとはプログラムにするだけなんですが、いい加減疲れすぎで頭がショートしそうだったので帰ったと、そういうわけです。

 うん、文系の人がこの日記見たら、意味不明な単語の羅列にしか見えないかもね。理系でも、ベクトル関係に理解が深くないとわかんないかも。高校じゃ確か外積なんてやらないし。…でも、文系の人も理系の人も、今の俺の実験がヘビーだということはわかってもらえた気がします。こんな感じで、延々とベクトルの計算をしてます。