2007/12/23

昨日の続き。 応用の効かない例の挙げる。 数学が分からないプログラマの頭の中をダイジェスト。

キャラクターのパラメータ成長を支援するツールを作ることにした。 レベル1、 レベル20、 レベル100のときのパラメータを入力すれば途中のレベルのパラメータを曲線補完して出力するツールだ。

まずは3点を通る曲線を表示するプログラムを作ることにした。 WEBで調べると3次スプライン補完が妥当だろう。 まず、 それを調べるのに時間がかかった。 やれやれ。 見つかるには見つかったから良かったけど。

次はプログラムへの組み込み。 サンプルソースはあったが、 スプライン補完の数学的説明が分からないから、 パクるしかできないな。 ゆえにどうしても表示を確認しないと不安だ。 この心理が面白くない。 でも一応プログラムはプロだし、 表示ぐらいはできるだろうなー。 やっぱりできた。

しかし、 ここで問題が発生。 レベル1-100までを補完したいのに、 制御点がきりの悪いところにあるようー。 制御点を100個用意し、 1-100に割り当てたいのになあ。 そもそもそれが可能かどうかも良く分からないぜ。 困ったな。 たぶん可能だよね。

それから、 プログラムをちょこちょこいじってみるものの、 期待どおりの動作はしない。 分かってないとこういうあいまいな作業になります。 自覚しましょう。 これは良くない。 良くないが、 勉強するとなると時間がかかるから嫌だし、 もしかしたらあとちょっとでできるかもしれないとやってしまうのである。 それが半分ぐらいはなんとかなってしまうからたちが悪い。 こうやって理解しないまま作業を繰り返すしくみだ。

しかし、 今回はどうにもうまくいかないし、 それにいかないような気が強くしていた。 そこでもう一度スプライン補完の説明を読んでみる。 うわあ。 記号がいっぱいで読めそうに無いよう。 やりたいことはそんなに複雑じゃないのにこれを理解しないといけないの? 何とかならないかな。 でもあてずっぽうじゃできなさげだから、 理解しなくてはなるまいかあ。 やだなあ。 そもそも一体この説明は何を言っているんだろう。 もっと分かりやすい説明は無いかな。 ちょっと探してみようかな。

調べるのに時間を費やす。 気力も削がれていきます。

結局起死回生の説明は見つからず、 最初に発見したサイトに戻る。 この説明すら理解できないが、 仮に理解したとて、 おそらくサンプルソースの説明だから応用は別の理解がいる。 その別の理解がどれになるかがさっぱり分からない。 ルートに関する知識が要るのか要らないのか、 多項式というものをもっと理解しなくてはならないのか、 はてさて。 数学記号ももっと読めないとまずいだろう。 難関の堂々巡りになってきたぞこれは。

もしかするとスプライン補完の理解は現在の自分には無理なのでは?もっと簡単なところから出直すべきか?しかしやりたいことはたいしたものではないし、 さっさと次へ進みたいのよ。 なんとか分からないものだろうか。

最後まで読んだ方は、 こうならないように勉強しておきましょう。