float predicate_insphere(vector a, vector b, vector c, vector d, vector e)
3D空間内の4つのポイントa
, b
, c
, d
を指定した時、e
がそのabcd
四面体の外接球の内側にあればプラスの値を返します。
外側にあればマイナスの値を返します。ちょうど外接球上にあれば0を返します。
精度を上げるために、この関数は、保証された訂正符号付きのマトリックスの行列式:
[a_x a_y a_z a^2 1; b_x b_y b_z b^2 1; c_x c_y c_z c^2 1; d_x d_y d_z d^2 1; e_x e_y e_z e^2 1]
を計算します。
a^2
, b^2
, c^2
, d^2
, e^2
は、それぞれの入力ベクトルの長さの2乗です。
intersect |