我有一個3×3的旋轉矩陣角度:查找3x3矩陣組件
[ cos(angle) sin(angle) 0 ]
[ -sin(angle) cos(angle) 0 ]
[ 0 0 1 ]
如何制定出angle
?
我現在使用要做到這一點的方法是:
void Mat3::SetAngle(const float angle) {
m[ 0 + 0 * 3 ] = cos(angle);
m[ 1 + 0 * 3 ] = sin(angle);
m[ 0 + 1 * 3 ] = -sin(angle);
m[ 1 + 1 * 3 ] = cos(angle);
}
而且我使用中檢索它:
float Mat3::GetAngle(void) {
return atan2(m[ 1 + 0 * 3], m[ 0 + 0 * 3]);
}
我測試它像這樣:
Mat3 m;
m.SetAngle(179.0f);
float a = m.GetAngle();
結果是3.0708115這是不正確的。
您正在使用哪種編程語言? – 2013-05-10 12:21:42
我正在使用C++語言。 – 2013-05-10 12:22:51
看起來像圍繞z軸旋轉......也正弦的跡象:)似乎互換。確保它是弧度。 – kineticfocus 2013-05-10 12:25:02