观僵尸世界大战有感--用 Python 制作的僵尸扩散动图

2018-09-21 22:40:43 +08:00
 mathzhaoliang

今晚清理了一下几年前的旧电脑,惊喜的发现了以前写的一些旧程序。其中一个居然是我初学 python 时写的第二个程序:模拟僵尸在美国的扩散。

我还记得我初学 python 的时候正是僵尸世界大战电影上映的时候。看完以后觉得很过瘾,恰好网上有人 po 了类似的代码,我借鉴了下创意,但是做了一个效果好得多的动图:

其中红色代表僵尸,橙色代表四处逃生的感染者,白色的亮度图代表人口密度。 模型的假定如下:

  1. 僵尸和感染者会随机地向周围扩散,僵尸扩散的慢一些,感染者扩散的快一些。正常的人类不会扩散。
  2. 每个时刻,在有僵尸的地方,正常人以一定的几率被咬,变成感染者;感染者以一定的几率变成僵尸。

动图原理就是利用透明通道,把僵尸的密度和背景图片叠加在一起。

代码在这里: https://github.com/neozhaoliang/world_war_z

这的确是我人生的第二个 python 程序,千真万确。(不算 hello world 这类)

我的第一个 python 程序在我的另一个项目里可以找到。

我的旧代码里面还有一些有意思的小玩意,过几天我会整理出来发上来。

2290 次点击
所在节点    分享创造
5 条回复
kslr
2018-09-21 23:27:24 +08:00
可以继续优化一下,比如对温度(严寒、炎热)、传播途径(啮齿类、鸟类、昆虫、水源)、人种的不同特征。
Mogugugugu
2018-09-21 23:51:44 +08:00
瘟疫世界 ?
mathzhaoliang
2018-09-22 08:51:45 +08:00
@kslr 那个得写专门的建模软件了,这么个小脚本做不了许多。
silencefent
2018-09-22 14:31:09 +08:00
等等,美中是大沙漠和隔壁,蔓延哪有这么快,美西大城市被感染完了中部都不一定能覆盖满
mathzhaoliang
2018-09-22 16:52:20 +08:00
@silencefent 这只是个基于人口密度图的模拟。真实模型会考虑地形、交通、航班。对一个几十行的小脚本来说太复杂了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/491678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX