什么是确定某些东西的x和y的算法,以便它遵循2个关键帧之间的曲线?

时间:2012-07-29 23:56:14

标签: algorithm math animation platform-independent

回到uni我记得有一个算法用于计算2个关键帧的x和y值之间的点的x和y位置,我知道直线的那个

x =((KeyFrame2.x - KeyFrame1.x)/ duration)* time

我的理解是,2个关键帧之间的差异除以持续时间,可以得出每个时间单位(通常是1帧)的测量单位(大多数是像素),所以你只需乘以该值虽然时间轴有多远

即。 x =((KeyFrame2.x - KeyFrame1.x)/ duration)*时间
x =((10 - 0)/ 10)* 3
x =(10/10)* 3
x = 1 * 3
x = 3(在3个时间单位之后,对象的位置将是沿着x轴从KeyFrame1开始的+3个像素)

这个我理解然而在那里我也被告知一个用于曲线路径的一个,比如一个球弹跳前进,关键帧是它撞到地面的时候,当它看到它的反弹时,这个是什么的我已经忘记了,我不知道我的笔记到底在哪里

我要问的是用于计算具有这样的路径的对象的x和y位置的算法,我要求的是与代码相互依赖的数学算法,我要做的是为数字设置动画将围绕屏幕中心圈出徽标的球体,我已经让代码中的对象移动但我需要调整关键帧之间的计算

注意:即使我不是要求代码,算法也会用于动画编程,因此我的问题与编程有关

注2:KeyFrame2.x和KeyFrame1.x不是代码,我将关键帧视为类的实例,其中包含x,y,z等值,前一帧等的持续时间

2 个答案:

答案 0 :(得分:1)

您不是要求算法,而是要求方程式。您可以根据您正在模拟的运动类型使用各种方程式;例如,重力下的抛射物运动由抛物线描述 - 形式的曲线

x = a * y^2 + b

对于由某些智能力控制的运动,基于高阶多项式或贝塞尔曲线的曲线拟合更为合适。谷歌是你的朋友。

答案 1 :(得分:0)

如果你知道你有圆周运动,你可以圈出方程来预测下一个位置或在它们之间进行插值。由于圆可以由3个点唯一定义,因此需要3个点插入其间。这是有道理的,只有2点,你甚至不知道它是凸圆形还是凹圆形。

根据你的分数所带来的移动,你选择的方程至少与你的运动相似。在大多数情况下,你所指出的线性方程式就足够了。