言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

二日を無駄にする。

ある方向にボブが立っている。そこから、どこか好きな場所へ歩いて動く時、ボブはどんな軌跡を通って動くだろうか。この問題に二日費やし、無駄にしてしまった。

最も簡単な方法は次のような物だろう。目標の方向によって、右か左へ曲がりながら進む。目標が目の前に見えたら、後はまっすぐ進んでゆく。

あえてこの方法はとらなかった。理由は、手続き的なのが気に食わなかったから。このような方法では、t 秒後にボブがどこにいるのかという事がすぐに求まらない。これはダサいと思ったのだ。そこで、関数的に軌跡を求めその通りに進むという作戦に出た。

作図してみると、結構簡単そうだ。適当な回転半径を元に円を描き、ゴール地点までの接線を求めればよい。しかしここから泥沼。求まりそうで求まらない。とりあえず重要な点は、回転の中心と、回転運動から直線運動になる点だ。回転の中心はすぐに分かったが、この運動が変化する点、接線と重なる点の出し方が分からない。長らくディスクの肥やしになっていた mathematica まで持ち出し、あーだこーだと悩む。結局、僕のやり方が悪いのか、ある特定の条件に対して求める点は見つかるのだが、その点を求めるための式を求めようとすると莫大な式が出てきてしまった。

そもそも、こういう関数的な手法をとろうと思った理由はプログラムの見通しをよくする為なので、こんな意味不明の数式の羅列では使い物にならない。とりあえず、ここは諦める事にした。もしも僕に数学の素質があれば何となく上手いやり方を見つけるかも知れないが、全然勘が働かないのでどうしようもない。。。