視線とポリゴンとの交点

アルゴリズム

視線からのベクトルがポリゴンと交わるかどうかの判定と、 交点の位置計算。

点 c を含み、ベクトル a と b で作られる平面に含まれる凸ポリゴンがあるとする。
[a, b 平面上にあるポリゴン]
視線を表す単位ベクトルを e として、 視点の位置ベクトルを d とし、 t をスカラーとして d + te にポリゴンを含む平面との交点があるとする。

  1. 平面(ポリゴン)の法線 n を求める。
    ベクトル a と b による外積によって求めることができる。
    [ポリゴンの法線 n]
  2. 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 を求めるための図]
  3. g がポリゴン内にあるかどうか判定する。
    点の内部判定(ポリゴン)を参照のこと。

参考


home | index
Mail