float predicate_orient3d(vector a, vector b, vector c, vector d)
空間内の3つのポイントa
, b
, c
を指定した時、d
がabc
三角形で定義された平面の(右ねじの法則から見て)背後にあればマイナスの値を返します。
前方にあればプラスの値を返します。a
, b
, c
, d
が同一平面上にあれば0を返します。
精度を上げるために、この関数は、保証された訂正符号付きのマトリックスの行列式:
[a_x a_y a_z 1; b_x b_y b_z 1; c_x c_y c_z 1; d_x d_y d_z 1]
を計算します。
measure |
|