iOS objective-c 粒子效果,加载动画

先来看看效果:

加载动画效果图.gif

动画实现:

该动画由一组运动的粒子组成。

  • 粒子先沿螺线圈(半径逐渐变大的圆弧)运动,再沿圆圈运动。
  • 为了让放射的粒子成线性,需要把粒子的发射角度限制在较小的范围内,这样绘制的效果如图。
  • 可见这些是离散的点,为了让粒子首尾相连,需要给每一束粒子加一个自转动画,需要注意的是,自转速度要和粒子运动的线速度对应,即:粒子运动一圈,自转360度。
iOS objective-c 粒子效果,加载动画_第1张图片
不带自转的动画.gif
阿基米德螺线圈路径方程:
r = a + bθ

其中 a 和 b 均为实数。改变参数 a相当于旋转螺线,而参数 b 则控制相邻两条曲线之间的距离。这是百度百科的描述。

参数确定:

我用Mac自带的Grapher观察了下参数a,b对线圈的形状的影响。

  1. 只有当a=0的时候,线圈才从中心点开始,所以没用a这个常数。
  2. 关于参数b,b= r/θ。如果螺线圈的最大半径(螺线圈半径是无线增大的,这里把最终的圆圈半径作为最大半径)设为100,旋转3圈后,达到最大半径,那么b = 100/(3.0*2π),这样就可以得出b 取值的大概范围;

上面就是这个动画需要说明的地方,话不多说,看代码就好了。如果大家有什么疑问,发现什么bug,或者需要做相关的修改,欢迎留言。

iOS objective-c 粒子效果,加载动画_第2张图片
周五啦.gif

代码地址:https://github.com/hufengiOS/SearchParticleAnimateDemo-.git

你可能感兴趣的:(iOS objective-c 粒子效果,加载动画)