目次ページ 前ページ 次ページ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8. 二直線の交点計算と応用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.1 最も基礎的な算法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8.1.5 しきい値を判定に使う | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
図8.1 線分に対して点Bの左右関係求める 交差判定に使うために、線分の端点がしきい値の範囲で同一座標にあるか否かの判定をします。そのコードが表8.1のJECです。線分Aに対して、線分Bの端点が左にあるか右にあるかの判定がIBPT,IBNTです。これは、端点から線分に降ろした垂線の長さを計算し、その長さがしきい値以内であれば、その端点が線分または線分を含む直線上にあると判定します(図8.1)。X形の交差は、線分の2端点が、互いに相手側の線分の左右にあるときです。このとき、垂線の長さの比で線分を分割する点が交点です。二線分が一直線に載る場合は、線分の長手方向の前後関係を判定し、重なりの具合をコード化します。 表8.1 二線分の交差状態を分類するコードIX
No. IBPT IBNT JEC IX 交差状態 備 考 1 1 -1 0 1 線分A,B共に交点で分割 2 -1 1 0 -1 線分A,B共に交点で分割 3 0 +/- 4 2 IANT=0 4 0 +/- 1 -2 IAPT=0 5 0 1 0 3 線分Aの区切りは保留 6 0 -1 0 -3 線分Aを交点で分割 7 +/- 0 8 4 IANT=0 8 +/- 0 2 -4 IAPT=0 9 1 0 0 5 線分Aの区切りは保留 10 -1 0 0 -5 線分Aを交点で分割 11 +/- +/- 0 6 線分Bを交点で分割、IAPT=0 12 +/- +/- 0 7 線分Bを交点で分割、IANT=0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
前ページ 次ページ |