【发布时间】:2011-09-12 20:37:02
【问题描述】:
我是使用 Corona SDK 为 ipad 编程和制作应用程序的新手。
我想拍一个像这样的摆动动画: http://www.youtube.com/watch?v=kXxQU0T7I2A#t=0m40s (t=40-44 秒)。
我该怎么做?哪种方法更容易:使用具有特定关节的物理或使用过渡? 也许有一些例子?
【问题讨论】:
我是使用 Corona SDK 为 ipad 编程和制作应用程序的新手。
我想拍一个像这样的摆动动画: http://www.youtube.com/watch?v=kXxQU0T7I2A#t=0m40s (t=40-44 秒)。
我该怎么做?哪种方法更容易:使用具有特定关节的物理或使用过渡? 也许有一些例子?
【问题讨论】:
阻尼谐振子的解非常简单:
startAmplitude*sin(omega*t+startPhase)*exp(-t*dampningConstant)
我会用它来描述关节的角度。根据手臂的角度和长度,您可以计算 (x,y) 对。如果您在一个系列中有多个部分,您可以简单地添加不同步骤的 x 和 y 值。
这没有正确描述关节耦合系统的物理特性,但可能足以满足您的需要。
【讨论】:
要模拟阻尼弹簧,您需要指定:
每一帧,你都想跟踪物体的速度,并且:
在伪代码中,这是:
velocity = velocity * (1-dampingFactor) + deviationFromRest * springConstant
position = position + velocity
您可以在我的网站上以交互方式玩这个:
http://phrogz.net/damped-spring-oscillations-in-javascript
【讨论】: