我在最好的时候被弧度困惑,所以我倾向于在旋转UIViews时以度数工作。到目前为止,我一直在使用以下公式将度数转换为弧度:通过360度旋转UIView和更多
#define radians(x) (M_PI * x/180.0)
到目前为止这么好。问题出现在用户旋转360度或更多的屏幕上的UIView,我想在屏幕上显示图像旋转了多少度。我有这样的,它工作正常可达180度:
float rot = [recognizer rotation];
[self.steeringWheel setTransform:CGAffineTransformRotate([self.steeringWheel transform], (rot))]; // turn wheel
CGFloat radians = atan2f(steeringWheel.transform.b, steeringWheel.transform.a);
CGFloat degrees = radians * (180/M_PI);
self.degreesBox.text = [NSString stringWithFormat:@"%1.0f", degrees]; // show degrees of rotation on screen
180度后,我读出的变化-179,-178等一路回零。相反,我希望它继续计数到359(如果可能,然后回到零,1,2等)。
我可以使用一个公式,它增加了2到179,3到178等来获得正确的数量,但是当我然后转动并且在相反方向转动轮子时,这将不起作用(-1度转动将读取出359,当我真的想要读出1或-1)。
我希望这是有道理的。基本上,我想知道轮子从起点开始在每个方向转过多少。目前我得到的是通过最短路线读取多少度数回到起点。
范围为[-π,π] – DGund