![](/img/trans.png)
[英]How to orient object towards point in 3D without undesired rotations along direction vector
[英]Rotate object towards 3D point
我正在嘗試使用OpenGL和glm向3d點旋轉對象。 要找到xRotation,我正在這樣做:
xRotation=atan2(lookAtDiff.x,lookAtDiff.z)
其中xRotation圍繞Y軸,而lookAtDiff是vec3,它是對象位置與我要使其面對的對象之間的差異。 這可以完美地工作。 因此,我決定以相同的方式執行yRotation(繞X軸旋轉):
yRotation=atan2(lookAtDiff.y,lookAtDiff.x)
這給了我錯誤的旋轉。 我的問題是,為什么我會從中得到錯誤的旋轉,並且該如何解決?
您必須使用對角線:
yRotation = atan2(lookAtDiff.y, sqrt(lookAtDiff.x * lookAtDiff.x + lookAtDiff.z * lookAtDiff.z));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.