跳转到内容

predicate_orient3d

float  predicate_orient3d(vector a, vector b, vector c, vector d)

给定空间中的3个点 abc,如果点 d 位于由三角形 abc 定义的平面后方(遵循右手定则的环绕顺序),则返回负值;如果位于平面前方则返回正值;若点 abcd 共面则返回零。

更准确地说,该函数计算以下矩阵的行列式:

[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]

…并保证符号的正确性。