float predicate_incircle(vector2 a, vector2 b, vector2 c, vector2 d)
平面上の3つのポイントa
, b
, c
を指定した時に、d
がそのabc
三角形の外接円の内側にあればプラスの値を返します。
外側にあればマイナスの値を返します。ちょうど外接円上にあれば0を返します。
精度を上げるために、この関数は、保証された訂正符号付きのマトリックスの行列式:
[a_x a_y a^2 1; b_x b_y b^2 1; c_x c_y c^2 1; d_x d_y d^2 1]
を計算します。
a^2
, b^2
, c^2
, d^2
は、それぞれの入力ベクトルの長さの2乗です。
intersect |