我有一个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)
。
我需要推断出它可以与任何point
,normal
,x
和y
一起使用。
最佳答案
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/