先来看看效果:
加载动画效果图.gif动画实现:
该动画由一组运动的粒子组成。
- 粒子先沿螺线圈(半径逐渐变大的圆弧)运动,再沿圆圈运动。
- 为了让放射的粒子成线性,需要把粒子的发射角度限制在较小的范围内,这样绘制的效果如图。
- 可见这些是离散的点,为了让粒子首尾相连,需要给每一束粒子加一个自转动画,需要注意的是,自转速度要和粒子运动的线速度对应,即:粒子运动一圈,自转360度。
阿基米德螺线圈路径方程:
r = a + bθ
其中 a 和 b 均为实数。改变参数 a相当于旋转螺线,而参数 b 则控制相邻两条曲线之间的距离。这是百度百科的描述。
参数确定:
我用Mac自带的Grapher观察了下参数a,b对线圈的形状的影响。
- 只有当a=0的时候,线圈才从中心点开始,所以没用a这个常数。
- 关于参数b,b= r/θ。如果螺线圈的最大半径(螺线圈半径是无线增大的,这里把最终的圆圈半径作为最大半径)设为100,旋转3圈后,达到最大半径,那么b = 100/(3.0*2π),这样就可以得出b 取值的大概范围;
上面就是这个动画需要说明的地方,话不多说,看代码就好了。如果大家有什么疑问,发现什么bug,或者需要做相关的修改,欢迎留言。
周五啦.gif代码地址:https://github.com/hufengiOS/SearchParticleAnimateDemo-.git
网友评论