帮助我重新理解如何使用正弦振荡(目标)C中的图形

时间:2010-12-20 19:43:14

标签: iphone ipad sine

我觉得这很傻,但我似乎忘记了如何有效地使用正弦。

我正在使用iPad应用程序,所以我在ObjectiveC中,而我只是想让UIView慢慢振荡。只使用position.y + sin(计数器)使它移动得如此之快,它会振动,我似乎无法定义减慢它的时间。

我发现了一些代码示例(主要用于生成声波),它们都将很多东西组合成一行代码,我不能轻易将它分开。任何人都可以解释一下我应该做些什么吗?

3 个答案:

答案 0 :(得分:2)

sin(和cos)在Radians中获取一个参数。名称counter表示您没有使用Radians。

因此,您需要确定您想要的每秒振荡次数。然后,您可以测量最后一个和当前动画“帧”之间的时间。整波是2PI弧度,所以

Y = sin(2PI * Time * OccilationsPerSecond) * Amplitude. 

答案 1 :(得分:1)

你需要这样的公式:

x(t) = (x_max) sin(2*pi*frequency*t)

其中

pi = 3.14159....
frequency = 1/period
t = time
x_max = maximum amplitude in the x-direction

如果你想要在y方向上振荡,你需要另一个功能。

答案 2 :(得分:0)

虽然不是您所追求的答案,但如果速度过快,您可以简单地减少调用计时器的时间。 (也就是说,您也可以设置CABasicAnimation的持续时间 - 可能是一个更好的方法,因为iOS为您处理动画,可以自动反转到初始设置,可以设置为循环'n'次等等。)

那就是说,希望其他人能提供你所追求的东西。