好,
我在照片中有一个这样的圆圈。
我想将红线旋转到我想要的程度。

圆从0到300度开始。

我开始与

CGFloat wAngle = Degrees2Radians([_Weight.text intValue]/300.0*360);
_Arrow.layer.transform = CATransform3DMakeRotation (wAngle + M_PI, 0, 0, 1);

但在此代码段中,0值位于顶部,而不是底部。
可能是因为我不是三角学的天才... :)

正确旋转箭头的正确方法是什么?
如何设置角度值?

谢谢。

最佳答案

您无需变换度数和弧度。您具有相对价值:

CGFloat relativeAngle = [_Weight.text intValue] / 300.0;

因此,只需使用它:
_Arrow.layer.transform = CATransform3DMakeRotation(relativeAngle * M_PI*2, 0, 0, 1);

如果开始错误,则只需更改视图的初始位置即可。
(或将错误的角度总结为新角度。就像(relativeAngle * M_Pi*2 + correction)一样。
// what PI means in degrees
M_PI * 2 = 360°
M_PI     = 180°
M_PI_2   = 90°
M_PI_4   = 45°

关于objective-c - 旋转线像平衡板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13643399/

10-09 15:34
查看更多