我正在尝试使 Houdini 中的几何图形与直线上的法线方向相同。我将法线作为大小为 1 的向量,然后使用公式 angle = arccos((x dot y)/(magnitude x *magnitude 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 轴旋转。