用python在Houdini中旋转到面向量

2024-07-02 12:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使一个在胡迪尼几何面对同一个方向的法线在一条线上。我得到的法向量的大小为1,然后使用公式angle=arccos((x dot y)/(magnize x*magnity y)。获取旋转对象的角度,然后乘以180将其转换为度。由于某些原因,这并不能给出一致的结果。在

我的数学有明显的问题吗?我是胡迪尼的新人,所以我不确定我是否会错过一些会使这件事复杂化的事情。在

下面是我使用的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轴旋转。在


Tags: andnumpysqrt方向dothouvector3normalized