核心动画 - 如何计算持续时间,以便以相同的速率绘制两条不同长度的线

时间:2013-01-11 09:54:02

标签: objective-c core-animation

我有两条不同长度的线

第1行-----

Line2 -------------

如何计算每一行的动画持续时间,以便它们以相同的速度绘制。

目前,我有一段持续时间的设定值

line1.duration = 1;

line2.duration = 1;

由于长度不同,line1的动画比line2慢。

如何以固定的速度计算动画持续时间?

修改

忘记提及line1不知道line2的长度,因为线条是在循环中绘制的。我所追求的是恒定速度计算/每秒像素数

2 个答案:

答案 0 :(得分:2)

试试这个:

line2.duration = lengthOfLine2 / lengthOfLine1 * line1.duration;

(替换适当的值。)

答案 1 :(得分:0)

我假设:以相同的速度绘图 - 你的意思是它们都应该同时结束绘图。

假设第1行:长度 - 100像素

假设第2行:长度 - 350像素

然后假设1 px需要1 ms,那么第1行需要100 ms

对于第2行需要100 ms,需要绘制(350/100 = 3.5 px / ms)

因此,假设短线需要时间“t”表示长度为“l1”的行

然后更大的线应该花费时间“l2 / t”为长度为“l2”的线 他们俩同时停止画画。