将对象旋转到3D点

时间:2016-12-21 23:10:41

标签: opengl glm-math

我尝试使用OpenGL和glm将对象旋转到3d点。要找到xRotation,我这样做:

xRotation=atan2(lookAtDiff.x,lookAtDiff.z)

其中xRotation围绕Y轴,lookAtDiff是vec3,它是对象位置与我试图让它面对的区别之间的差异。这完美无瑕。因此,我决定以相同的方式进行yRotation(绕X轴旋转):

yRotation=atan2(lookAtDiff.y,lookAtDiff.x)

这给了我错误的轮换。我的问题是为什么我从这里得到了错误的轮换,我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

你必须使用对角线:

yRotation = atan2(lookAtDiff.y, sqrt(lookAtDiff.x * lookAtDiff.x + lookAtDiff.z * lookAtDiff.z));