我正在尝试实现一个旋转轮,该轮输出顺时针旋转时输出正整数-sizeof(int)-逆时针旋转时输出负整数-sizeof(int)。我正在使用SMRotaryWheel实现找到here并输出在方法中生成的弧度值:continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
它使用atan2f()
函数来计算倾斜角度,并执行一些算法来确定2Pi弧度范围内的旋转角度。
我遇到的问题是,由于它仅测量倾斜角度,因此输出范围仅在+/- pi范围内。
是否有一个(trig?)函数-或多个函数-可以计算大于360度的角度的旋转角度而不是倾斜角度?
最佳答案
编辑:我误解了原始说明。
假设对于弧度,从(1,0)开始为0,则(0,1)为π/ 2,(-1,0)为π(0,-1)为3π/ 2,然后返回(1 ,0)为2π(或0)。
您的设置是,从III到IV的交点是π到0,从I到II的交点是0到-π。所以我想将I变成II变成0到π,然后将III变成IV变成π到2π,
伪代码(假设输入θ的范围为{θ|-π
function inclination2rotation(θ)
{
if (θ <= 0)
{
return -θ;
}
if (θ > 0)
{
return -θ+2π;
}
}
关于ios - 计算大于360度的旋转角度而不是倾斜角度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19468371/