观僵尸世界大战有感--用 Python 制作的僵尸扩散动图 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
mathzhaoliang

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

  •  
  •   mathzhaoliang
    neozhaoliang 2018 年 9 月 21 日 2671 次点击
    这是一个创建于 2772 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今晚清理了一下几年前的旧电脑,惊喜的发现了以前写的一些旧程序。其中一个居然是我初学 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 年 9 月 21 日
    可以继续优化一下,比如对温度(严寒、炎热)、传播途径(啮齿类、鸟类、昆虫、水源)、人种的不同特征。
    Mogugugugu
        2
    Mogugugugu  
       2018 年 9 月 21 日
    瘟疫世界 ?
    mathzhaoliang
        3
    mathzhaoliang  
    OP
       2018 年 9 月 22 日
    @kslr 那个得写专门的建模软件了,这么个小脚本做不了许多。
    silencefent
        4
    silencefent  
       2018 年 9 月 22 日
    等等,美中是大沙漠和隔壁,蔓延哪有这么快,美西大城市被感染完了中部都不一定能覆盖满
    mathzhaoliang
        5
    mathzhaoliang  
    OP
       2018 年 9 月 22 日
    @silencefent 这只是个基于人口密度图的模拟。真实模型会考虑地形、交通、航班。对一个几十行的小脚本来说太复杂了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1085 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 18:26 PVG 02:26 LAX 11:26 JFK 14:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86