2

我正在尝试实现一个旋转轮,它输出正整数 - sizeof(int) - 当顺时针旋转和负整数 - sizeof(int) - 当逆时针旋转。我正在使用此处找到的 SMRotaryWheel 实现并输出在该方法中生成的弧度值:

continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event

它使用该atan2f()函数来计算倾斜角度,并进行一些算术运算来确定在 2Pi 弧度范围内旋转的位置。

我遇到的问题是,由于它只测量倾斜角度,因此输出范围仅在 +/- pi 范围内。

是否有(触发?)函数 - 或函数 - 将计算大于 360 度的角度的旋转角度而不是倾斜角度?

4

1 回答 1

0

编辑:我误解了原始描述。

假设对于弧度,从 (1,0) 开始是 0,那么 (0,1) 是 π/2,(-1,0) 是 π (0,-1) 是 3π/2,然后回到 (1 ,0) 是 2π(或 0)。

您的设置是,从 III 到 IV 的交叉是 π 到 0,从 I 到 II 的交叉是 0 到 -π。所以我想把I to II变成0 to π,然后把III to IV变成π to 2π,

伪代码(假设输入 θ 的范围是 {θ | -π < θ < π})

function inclination2rotation(θ)
{
    if (θ <= 0)
    {
        return -θ;
    }
    if (θ > 0)
    {
        return -θ+2π;
    }
}
于 2013-10-19T16:47:56.417 回答