使用Python旋转Houdini中的面对向量

时间:2019-03-29 02:57:18

标签: python vector rotation houdini

我正在尝试使Houdini中的几何图形面对的方向与直线上的法线相同。我将法线作为大小为1的矢量,然后使用公式angle = arccos((x点y)/(magnitude x *大小y)。来获取旋转对象的角度,然后乘以180进行转换出于某种原因,这并不能给出一致的结果。

我的数学显然做错了吗?我是Houdini的新手,所以不确定我是否会错过一些会使环境复杂化的事情。

这是我正在使用的python代码。

#normalize and store as vector3
currentNormal = hou.Vector3(currentNormal).normalized()
previousNormal = hou.Vector3(previousNormal).normalized()

#get dot product and magnitudes
dotProd = numpy.dot(previousNormal, currentNormal)
previousMagnitude = numpy.sqrt((previousNormal[0]**2) + (previousNormal[1]**2) + (previousNormal[2]**2))
currentMagnitude = numpy.sqrt((currentNormal[0]**2) + (currentNormal[1]**2) + (currentNormal[2]**2))

nextLocationRotate = numpy.arccos(dotProd/(previousMagnitude * currentMagnitude))

nextLocationRotate = [0.0, nextLocationRotate*180, 0.0]

我正在尝试绕y轴旋转。

0 个答案:

没有答案