对于手动速度表控制,如何将针角度转换为速度?

时间:2011-02-09 13:41:54

标签: iphone cocoa-touch

我想要一个手动速度计控制器,用户可以将指针拖动到特定的速度设置,如下所示:

Sample speedometer control

从上面的针的角度来看,我该如何读回对应的速度?例如,上面会回读100的速度。

1 个答案:

答案 0 :(得分:1)

我自己完成了这个计算(但反过来,给定速度,调整针角)在类似的应用程序上。据推测,你的代码知道针的角度,因为你是动画它,并且你防止针低于0或高于160.我会假设你的针图像在静止时指向上下直线(以80mph)当针指向160英里每小时时角度是什么,并且当你动画响应触摸时将NSLog倾斜掉角度指向0英里每小时并注意使针几乎完美地显示0和160的值(你可以稍后在代码中调整它以使其恰到好处)。此外,我假设正角度顺时针旋转,负角度逆时针旋转。

然后任意角度的速度为:

double mphPerDegree = 160 / (angle160mph - angle0mph);
double speed = (currentAngleInDegrees * mphPerDegree) + 80.0;