我有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
一起使用。
答案 0 :(得分:1)
vector
对normal
定义的平面的The projection是:
def projection(vector, normal):
return vector - vector.dot(normal) * normal
据推测,这意味着你需要类似的东西:
x + projection(y, normal)