目次ページ  前ページ  次ページ

8. 二直線の交点計算と応用

8.2 代数直線の交差判定


8.2.2 二直線の成す角度を求める

 標準化された直線の式では(a,b)が法線ベクトルになっていますので、二つの法線ベクトルの外積(ベクトル積)は、二直線の成す角度の正弦値(sin)です。角度が十分に小さければ、二直線は実用的には平行または同一直線として重なると判定することにします。ここにしきい値を考えます。しかし、単純に連立方程式を解くときは、外積の計算は二元の連立方程式の係数行列を考えて、その行列の行列式(デターミナント)を計算します。この値の絶対値が、コンピュータが表すことができる最小の値よりも小さいと(アンダーフロー)、交点計算のときに0で割る処理になり、今度はオーバーフローが起こります。この現象が起きるとシステムがエラーを通知して処理を中断します。それを避けるため、或る計算上の数値精度を決めておき、デターミナントがこの値以下になったときは、ユーザレベルでエラー処理をするようにプログラミングします。この実用精度は、しきい値とは違う考え方をしていて、コンピュータが扱うことができる実数の有効桁数を勘案します。単精度実数では10進数に直して約7桁の精度、倍精度実数では約15桁です。仮に、手前で1mmの間隔がある二直線が10km先で交差する場合、または逆に、10Km先で1mmの視差を識別する場合を考えます。10km先までの距離の精度がmmまであるとするのが7桁の数が扱う精度です。これより遠方で交差を考えると、そこまでの距離の精度はmmまではありません。どこまでの遠方が扱えるかの限度は、実数表現の限度で決まりますが、単精度の実数の場合には10の35乗(1035)程度です。これは宇宙の遥かかなたまでの距離です。
2008.8 橋梁&都市PROJECT

前ページ  次ページ