给定3分,我该如何计算法向量?

Den*_*ail 27 c# math geometry .net-3.5

给定三个3D点(A,B和C),如何计算法向量?这三个点定义了一个平面,我希望矢量垂直于这个平面.

我可以获得演示此示例的示例C#代码吗?

Fra*_*ger 38

这取决于点的顺序.如果从反向法线的方向以逆时针顺序指定点,则计算起来很简单:

Dir = (B - A) x (C - A)
Norm = Dir / len(Dir)
Run Code Online (Sandbox Code Playgroud)

x交叉产品在哪里.

如果你正在使用OpenTK或XNA(可以访问Vector3类),那么它只是一个问题:

class Triangle {
    Vector3 a, b, c;
    public Vector3 Normal {
        get {
            var dir = Vector3.Cross(b - a, c - a);
            var norm = Vector3.Normalize(dir);
            return norm;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*son 5

形成向量 BA 和 BC 的叉积。请参阅http://mathworld.wolfram.com/CrossProduct.html