ポイントを考えると
Vector pos = new Vector(0.0, 0.20156815648078918, -78.30000305175781, 1.0);
と平面(三角形)
Vector a = new Vector(-6.599999904632568, 0.0, -78.5, 1.0);
Vector b = new Vector(6.599999904632568, 0.0, -78.5, 1.0);
Vector c = new Vector(6.599999904632568, 4.400000095367432, -78.5, 1.0);
の方向を指す平面法線を取得したい pos
//Getting plane normal
Vector ac = Vector.Subtract(a,c);
Vector bc = Vector.Subtract(b,c);
Vector planeNormal = Vector.CrossProduct(bc, ac);
//Testing which side of the plane the point is on
double dprod = Vector.DotProduct(planeNormal, pos);
if (dprod < 0)
{
planeNormal.Negate();
}
しかし、この方法は間違っています。結果のplaneNormal
ポイントは負のZ方向を指すため、無効にしないでください。このためのベストプラクティスはありますか?私を助けてください、私は@数学で大失敗します:)
ライティング計算に同様の方法を使用している場合は、法線を正規化します。
—
レイ・デイ