自定义动画在Raphael.js

问题描述:

Hyphotesis自定义动画在Raphael.js

我有一个路径上某些圈子(参见启动图形形状),他们需要动画到另一条路径(图最终形状)。

有几个动作动画必须做到:
- 移动整个形状到新的位置
- 改变路径
- 降低所有圈半径

下图:
Start and end position

问题

Raphael.js知道h从原始坐标到最后一个圆的动画都会改变半径。由于动画不会像原始和最终动画一样运行,动画看起来不太好。圆从直线x1,y1到x2,y2。

我试过

  1. 做直进动画,圆圈移动从开始到结束,改变半径。就像我说的,这不好。

  2. 每隔一圈移动一圈,计算每次迭代的新路径并计算圆的位置。这运行非常缓慢。

  3. 使用Element.getPointAtLength()计算每次迭代的临时圆位置。这也很慢。

  4. 在数组中有硬编码的中间路径并通过每个路径运行动画。这在速度上更好但看起来有点生涩

那么,有什么想法?

+0

我也想回答这个问题......我正在教学时钟,我需要沿着弧线平滑地进行动画的弧。不过,就像你的情况一样,它直接跳到新的点上:http://jsfiddle.net/zFXCb/10/如果我找到解决方案,我会发布一个答案。 – 2013-04-27 03:15:41

http://irunmywebsite.com/raphael/additionalhelp.php?v=2&q=element.getpointatlength

我在iPod所以不必多说了,但是这可能帮助

+0

这对我的问题没有帮助,我知道如何使用getPointAtLength。 – morsanu 2012-03-23 11:50:09