给定平面法线

时间:2017-10-27 15:49:48

标签: python numpy math 3d

我有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一起使用。

1 个答案:

答案 0 :(得分:1)

vectornormal定义的平面的The projection是:

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

据推测,这意味着你需要类似的东西:

x + projection(y, normal)