模拟鸟群扩散-Simulated bird group diffusion

code source

模拟鸟群扩散,来源于《python 极客编程项目》,其实比较难理解这个项目。

1.每个鸟个体之间必须保持一定的距离,同时所有的鸟之间的距离必须小于某个值(阀值)。

2. 鼠标左键可以添加鸟,右键点击可以制造鸟的“天敌",当然其效果类似图2,是鸟的速度相反

3.初始每只鸟的速度随机大小,速度方向也是随机的

4.代码比较难懂,我做了详细了注释后,发现不会的东西太多

所预备的基础知识:

线性代数

python matplotlib.animation  python.pyplot  动画及绘制模块

python  numpy的矩阵相加减,乘除求模(范数)

python scipy.spatial.distance 求矩阵范数

(argparse 命令行的使用啥的,了解即可)

难的东西,估计只有绘图才能讲清。

tick函数

就简单提提这个tick()函数,这个函数其实不是递归的,而是通过 class Birds,里的tick()调用的,然后传入到animation(即绘制动画的函数),通过它每个一段时间更新图画的...


图1


图2


tick()方法

更新鸟的位置,其实是通过pos的改变,所以可以看到:

pos--->position 位置      vec-->velocity速度

只是通过在原有的速度上,每次(一定的时间内,interval)增加一定的速度变化值。它是矩阵...

所以就这个矩阵就不好说了。

做了小demo,后,发现自己的基础知识差的可怜,以后多写写基础的东西。

图片:来源Google,如侵权,联系后立删

你可能感兴趣的:(模拟鸟群扩散-Simulated bird group diffusion)