2016-12-21 26 views
0

OpenGLとglmを使用してオブジェクトを3Dポイントに回転しようとしています。 xRotationを見つけるために、私はこれをやっている:オブジェクトを3Dポイントに回転

xRotationは、Y軸の周りで、lookAtDiffは、オブジェクトの位置と、私はそれが直面しようとしていますとの間の差であるvec3ある
xRotation=atan2(lookAtDiff.x,lookAtDiff.z) 

を。これは完璧に動作します。そこで、私は同じ方法でy軸回転を行うことにしました。

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

これは私に間違った回転を与えます。私の質問は、なぜ私はこれから間違ったローテーションを得ているのですか?どうすれば修正できますか?あなたは対角線を使用する必要が

答えて

0

yRotation = atan2(lookAtDiff.y, sqrt(lookAtDiff.x * lookAtDiff.x + lookAtDiff.z * lookAtDiff.z)); 
関連する問題