1

これが私の軸です。私はそれを何と呼ぶべきかわかりません。(ZXY ですか?) (これはカメラが見ているものです)

Y軸周りの平面回転を知りたいです。現在、Y を中心に 0 度です。

これが私がすることです、

Matrix33 orientmatrix = body->getGlobalOrientation();
return Degree(-asin(orientmatrix[2][0]));

これは反時計回りで間違った角度を返します: 0..45..90..45..0..-45..-90..-45..0

次のようになります: 0...45..90..135..180..-45..-90..-135..0

私は何を間違っていますか?

ありがとうございました。

(これは OGRE で、コードは C++ です)

4

1 に答える 1

3

間違っているのは、を使用しているということですasin。-pi/2から+pi/ 2の間、または-90度から+90度の間の値を返します。

360度にまたがる値が必要な場合は、を使用する必要がありますatan2。あなたの向きが本当にyの周りの回転であると仮定すると、あなたは使うことができます

Degree(atan2(orientmatrix[0][2], orientmatrix[0][0]))
于 2012-06-10T20:08:48.967 に答える