我有一个3D向量和一个3D脸法线。如何使用Python(带或不带numpy)沿着给定的面法线移动此向量?

理想情况下,我会使用带有xy的人脸法线来构建矩阵,然后将其乘以原始矢量或类似的东西,但是我无法理解如何构建它。自线性代数以来已经有一段时间了。

编辑:

感谢您指出我的问题太广泛了。

我的目标是沿着其法线所定义的面获得一个新点,即距原始点xy个单位。

示例:如果点是(0,0,0),法线是(0, 0, 1),则结果将是(x, y, 0)

示例2:如果点是(1, 0, 0),法线是(0, 1, 0),则结果将是(1+x, 0, y)

我需要推断出它可以与任何pointnormalxy一起使用。

最佳答案

vector在其normal定义的平面上的The projection为:

def projection(vector, normal):
    return vector - vector.dot(normal) * normal


大概这意味着您想要以下内容:

x + projection(y, normal)

关于python - 给定平面法线,沿平面移动顶点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46978948/

10-12 23:20