視線とポリゴンとの交点
アルゴリズム
視線からのベクトルがポリゴンと交わるかどうかの判定と、
交点の位置計算。
点 c を含み、ベクトル a と b で作られる平面に含まれる凸ポリゴンがあるとする。
視線を表す単位ベクトルを e として、
視点の位置ベクトルを d とし、
t をスカラーとして d + te にポリゴンを含む平面との交点があるとする。
- 平面(ポリゴン)の法線 n を求める。
ベクトル a と b による外積によって求めることができる。
- a と b で作られる平面上のベクトルは、
法線 n と直角になるので内積の値は 0 になる。
ゆえに、f = d + te - c と n の内積 f・n が 0 になることから t を求める。
f・n = (d + te - c)・n = 0
t(e・n) = (c - d)・n
t = (c - d)・n / (e・n)
これによって a と b によって作られる平面との交点 g = d + te が求まる。
ただし、e・n の値が 0 になるときは平面と視線が交わることがないことに注意すること。
- g がポリゴン内にあるかどうか判定する。
点の内部判定(ポリゴン)を参照のこと。
参考
home | index
Mail