懸案のバグの素性が判明

メッシュの辺と重心が1直線に並ぶとよくないらしい。特に、頂点を共有しているような近くのメッシュ同士だと影響が大きくなってしまうようだ。とりあえず、メッシュ切り直してどうなるか見ている。

実際に問題になった3点の行列式の値を計算してみると、重心の座標を200mも動かせば、問題ない値になる。これまで、ずいぶんいろんなケースをやってみたが、問題が出ていない。つまり、不幸なケースであったわけだ。

これから、どうするかであるが、メッシュを切るルーチンに手をいれ、値が良くないときは切り直すようにするのもひとつの手である。でも、副作用が恐い。手っ取り早いのは、出力結果をチェックし、まずい値があったら警告を発すると言うもの。プログラム自体は、AWKでも書けそう。perlrubyなら十分。H君はperlな人なので、perlで書くか。