3

假设我有一个二维旋转矩阵:

cos(t) -sin(t) 0
sin(t)  cos(t) 0
  0       0    1

你如何检索正确的旋转角度?

如果在第一个元素上使用 acos,则只能得到 0 和 pi 之间的值。问题是如果t小于 0,你会怎么做(当然我不知道 t ;))?

4

2 回答 2

2

大多数 C 系列编程语言中的函数atan2()同时采用 ay 和 x 值并计算它们之间比率的反正切,同时考​​虑这两个项的符号以给出正确的全圆角。

atan2( sin(t), cos(t) )返回(大约)t在 (-pi,+pi] 范围内。

于 2012-09-30T00:42:00.777 回答
1

有无数个t可以满足t + 2*pi()*n整数的解 ( ) n。如果您使用acos(cos(t)),您将得到 0 和 pi 之间的结果,但如果您还检查asin(sin(t)),您将能够确定旋转是顺时针还是逆时针。

于 2012-09-30T00:40:11.137 回答