前回ありがとうございます。また質問させていただきます。
dxライブラリとC++環境で作成中です。
任意軸回転、クォータニオンの使い方の本来方法が理解できていません。
クォータニオンの関数は前回の質問で分かったのですが、
XYZ各軸を別々に関数で回転させてマトリクスで合成する方法のみわかり
人にアドバイスを聞いたら本来の使い方と違う、また処理を短くできると聞きました。
調べてもクォータニオンの積による合成がどうのあたりで使い方の理解が止まっています。
調べ方が悪いのだと思うのですが行き詰り今回質問させてもらいました。
アドバイスよろしくお願いします。
すいません、答えてもらったのに伝え方が悪かったと思います。気を付けます。
補正・でロールピッチヨーそれぞれで回転させるのではなく、ほかの使い方を知りたかったのです。
さっとですがこんな感じのコードを人に見せたら上記のようにいわれました。
c++
1void Camera::SetCameraRotateQuaternion(const Quaternion &pitch, const Quaternion &yaw, const Quaternion &roll) 2{ 3 4MATRIX pitchMatrix, rollMatrix, yawMatrix; 5 6 m_backupCameraPos = m_cameraPos; 7 8 rollMatrix = MGetRotAxis(roll.optionalAxis, roll.rotationAngle); 9 10 pitchMatrix = MGetRotAxis(pitch.optionalAxis, pitch.rotationAngle); 11 12 yawMatrix = MGetRotAxis(yaw.optionalAxis, yaw.rotationAngle); 13 14 m_rotateMatrix = MMult(rollMatrix, pitchMatrix); 15 16 m_rotateMatrix = MMult(m_rotateMatrix, yawMatrix); 17 18 m_backupCameraPos = VSub(m_backupCameraPos, m_cameraLook); 19 m_backupCameraPos = VTransform(m_backupCameraPos, m_rotateMatrix); 20 m_backupCameraPos = VAdd(m_backupCameraPos, m_cameraLook); 21 22}```
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/12 00:56
2016/09/22 11:51