頂点が三角形の内側にあるかどうかを確認しようとしていますが、私は3D環境のCCW関数を開発する際に問題があります。点は、三角形の平面上にある場合、2D的環境のCCW関数の三角形内の頂点 - 衝突検出
その
//CCW calculates the cross produt
double CCW (point A , point B , point C) {
return (B.x-A.x) * (C.y-A.y) - (B.y-A.y) * (C.x-A.x);
}
//The other part is designed to work on 3D
typedef struct{
double x;
double y;
double z;
}Point;
int inTriangle(point A, point B, point C, point D){
Point E;
E.x = (A.x + B.x + C.x)/3;
E.y = (A.y + B.y + C.y)/3;
E.z = (A.z + B.z + C.z)/3;
return (CCW(A,B,D) * CCW (A,B,E) > 0 &&
CCW(B,C,D) * CCW(B,C,E) > 0 &&
CCW(A,C,D) * CCW(A,C,E));
}
CCWは、クロス積を計算することはできません。それを超えて、クロス積は2つのベクトルに対してのみ定義されます。 –
OKなので、CCWはベクトルABとACの外積のz成分を計算していますか? –
3Dの三角形内の点はどういう意味ですか?三角形の平面にポイントを投影して2Dをチェックすることを意味しますか? –