模拟鸟群扩散,来源于《python 极客编程项目》,其实比较难理解这个项目。
1.每个鸟个体之间必须保持一定的距离,同时所有的鸟之间的距离必须小于某个值(阀值)。
2. 鼠标左键可以添加鸟,右键点击可以制造鸟的“天敌",当然其效果类似图2,是鸟的速度相反
3.初始每只鸟的速度随机大小,速度方向也是随机的
4.代码比较难懂,我做了详细了注释后,发现不会的东西太多
所预备的基础知识:
线性代数
python matplotlib.animation python.pyplot 动画及绘制模块
python numpy的矩阵相加减,乘除求模(范数)
python scipy.spatial.distance 求矩阵范数
(argparse 命令行的使用啥的,了解即可)
难的东西,估计只有绘图才能讲清。
就简单提提这个tick()函数,这个函数其实不是递归的,而是通过 class Birds,里的tick()调用的,然后传入到animation(即绘制动画的函数),通过它每个一段时间更新图画的...
更新鸟的位置,其实是通过pos的改变,所以可以看到:
pos--->position 位置 vec-->velocity速度
只是通过在原有的速度上,每次(一定的时间内,interval)增加一定的速度变化值。它是矩阵...
所以就这个矩阵就不好说了。
做了小demo,后,发现自己的基础知识差的可怜,以后多写写基础的东西。
图片:来源Google,如侵权,联系后立删