V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
mathzhaoliang
V2EX  ›  分享创造

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

  •  
  •   mathzhaoliang ·
    neozhaoliang · 2018-09-21 22:40:43 +08:00 · 2317 次点击
    这是一个创建于 2266 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    5 条回复    2018-09-22 16:52:20 +08:00
    kslr
        1
    kslr  
       2018-09-21 23:27:24 +08:00
    可以继续优化一下,比如对温度(严寒、炎热)、传播途径(啮齿类、鸟类、昆虫、水源)、人种的不同特征。
    Mogugugugu
        2
    Mogugugugu  
       2018-09-21 23:51:44 +08:00
    瘟疫世界 ?
    mathzhaoliang
        3
    mathzhaoliang  
    OP
       2018-09-22 08:51:45 +08:00
    @kslr 那个得写专门的建模软件了,这么个小脚本做不了许多。
    silencefent
        4
    silencefent  
       2018-09-22 14:31:09 +08:00
    等等,美中是大沙漠和隔壁,蔓延哪有这么快,美西大城市被感染完了中部都不一定能覆盖满
    mathzhaoliang
        5
    mathzhaoliang  
    OP
       2018-09-22 16:52:20 +08:00
    @silencefent 这只是个基于人口密度图的模拟。真实模型会考虑地形、交通、航班。对一个几十行的小脚本来说太复杂了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:13 · PVG 10:13 · LAX 18:13 · JFK 21:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.