我有一个 3D 矢量和一个 3D 面法线。如何使用 Python(使用或不使用 numpy)沿给定面法线移动该向量?
理想情况下,我会使用带有x
和y
的面法线构建一个矩阵,并将其乘以原始向量或类似的东西,但我可以'我不知道如何构建它。距离线性代数已经有一段时间了。
编辑:
感谢您指出我的问题太宽泛。
我的目标是获得一个新点,即沿法线定义的面距原始点 x
和 y
单位。
示例:如果点为 (0,0,0)
并且法线为 (0, 0, 1)
,则结果将为 ( x,y,0)
。
示例 2:如果点为 (1, 0, 0)
,法线为 (0, 1, 0)
,则结果将为 (1+x,0,y)
。
我需要推断它适用于任何点
、正常
、x
和y
。
最佳答案
The projection 向量
到由其法线
定义的平面是:
def projection(vector, normal):
return vector - vector.dot(normal) * normal
大概这意味着您想要类似的东西:
x + projection(y, normal)
关于python - 给定平面法线,沿平面移动顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978948/