秀一个 Python 脚本生成的新作品 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mathzhaoliang
V2EX    Python

秀一个 Python 脚本生成的新作品

  •  7
     
  •   mathzhaoliang
    neozhaoliang 2017-10-10 13:59:12 +08:00 7009 次点击
    这是一个创建于 2931 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请看动态图: https://github.com/neozhaoliang/pywonderland/raw/master/img/wilson.gif

    这个图演示的是概率论中的一个随机算法,叫做 Wilson 算法,它生成一个完美迷宫(即一个生成树),而且这个迷宫是在所有完美迷宫中等概率地随机选取的,UST 这个单词的意思是 uniform spanning tree 的简写,即服从一致分布的生成树。

    生成迷宫后根据每个顶点与起点的距离对迷宫进行染色,使用的是宽度优先搜索算法。

    整个动态图是用 python 一次生成的,不调用任何外部程序和第三方模块。(字体文件没有办法,这是必须的,不过如果不嵌入文本,只生成迷宫的话则不需要此文件)。只要你安装了纯净版的 python2 或者 python3,那么不需要安装任何依赖即可运行。

    程序运行时间一般不超过半分钟,生成的动态图一般在 1M 左右,一般包含 1000 - 5000 帧。(是的你没看错,就是这么拽)

    项目之前在论坛上发过,不过这次玩了一点新花样。当然最精彩的永远在后面。下一个项目双曲蜂巢正在紧张制作中。

    49 条回复    2017-10-23 11:31:10 +08:00
    z0z
        1
    z0z  
       2017-10-10 14:30:36 +08:00
    我除了回复还能干什么
    mathzhaoliang
        2
    mathzhaoliang  
    OP
       2017-10-10 14:34:07 +08:00
    @z0z 术业有专攻啊。每个人用 python 干的事情是不一样的,我只是选了一个比较少有人玩的方向。
    lieh222
        3
    lieh222  
       2017-10-10 14:41:02 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    z0z
        4
    z0z  
       2017-10-10 14:42:29 +08:00
    @mathzhaoliang 多谢安慰啊。突然想起来了,大神请移步到这里 t/395736#reply3 可否点拨一下文中的那个连接实现计算极限功能的大概原理?
    BBCCBB
        5
    BBCCBB  
       2017-10-10 14:44:19 +08:00
    cool
    mathzhaoliang
        6
    mathzhaoliang  
    OP
       2017-10-10 14:50:42 +08:00
    @z0z 它那个网站只是调用了后台的一个程序(我猜他是用了 mathematica,不过也可能用的是自己写的其它程序)


    处理多项式,微分,积分这些属于符号计算的领域(记得吴文俊的机器证明吗?),符号计算有一套自己的算法来表示和研究数学对象,它与通常进行数值计算的科学计算器很不一样。比如分解多项式,它就是先在有限域上计算(有限域运算比较慢,但是不存在精度损失的问题),然后回到实数域上。插值的方法也很常用,但是不是你想的那种用法。
    xrlin
        7
    xrlin  
       2017-10-10 14:50:52 +08:00
    厉害
    ipwx
        8
    ipwx  
       2017-10-10 14:53:25 +08:00
    @z0z Python 的话,有 SimPy,有 Sage Math。
    vtwoextb
        9
    vtwoextb  
       2017-10-10 15:01:22 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    SakuraSa
        10
    SakuraSa  
       2017-10-10 15:02:16 +08:00
    很 cool,不知道能不能放出源码供大家学习一下?
    z0z
        11
    z0z  
       2017-10-10 15:05:22 +08:00
    @mathzhaoliang 多谢,我按照这个思路先去查查,目前我还不能就此问题回复,因为我还不知道该说什么,我是不是暴露了我的数学还很不好.......

    @ipwx 多谢啊,这个我也去查查。
    shingle
        12
    shingle  
       2017-10-10 15:06:34 +08:00
    @SakuraSa 根据 gif 图的路径看不出来 github 项目地址么 (_)
    CEBBCAT
        13
    CEBBCAT  
       2017-10-10 15:17:28 +08:00 via Android
    好棒!我要在我们 Minecraft 服务器用这个做多层迷宫
    dalang
        14
    dalang  
       2017-10-10 15:20:26 +08:00
    cool
    malkavia
        15
    malkavia  
       2017-10-10 15:35:02 +08:00
    github 已 star
    好厉害
    SakuraSa
        16
    SakuraSa  
       2017-10-10 15:42:33 +08:00
    @shingle 我没注意到...
    点进去居然发现是我以前 star 过的...
    mathzhaoliang
        17
    mathzhaoliang  
    OP
       2017-10-10 15:51:31 +08:00
    @CEBBCAT 这个方法比常用的 Prim, Kruskal 算法要慢,它的关键在于生成的迷宫服从一致分布。你在游戏里面用这个算法估计会很慢 。。。
    CEBBCAT
        18
    CEBBCAT  
       2017-10-10 17:17:31 +08:00
    @mathzhaoliang #17 (●''●),人工识图盖迷宫
    Mcatt
        19
    Mcatt  
       2017-10-10 17:21:37 +08:00
    厉害
    liyang803
        20
    liyang803  
       2017-10-10 17:22:37 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    linuxchild
        21
    linuxchild  
       2017-10-10 17:51:21 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    cbiqih
        22
    cbiqih  
       2017-10-10 17:56:03 +08:00
    一脸蒙蔽的出去,再一脸蒙蔽的进来~
    ashin
        23
    ashin  
       2017-10-10 18:27:38 +08:00
    厉害
    xiaozizayang
        24
    xiaozizayang  
       2017-10-10 20:01:43 +08:00
    很早就看到大佬的项目 继续膜拜
    newworld
        25
    newworld  
       2017-10-10 20:19:51 +08:00
    已 star https://github.com/neozhaoliang
    真大佬...收下我的膝盖!哈哈哈
    ranleng
        26
    ranleng  
       2017-10-10 20:22:44 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的思考,一脸蒙蔽的出去.
    (先 star 了.. 明天研究研究
    mathzhaoliang
        27
    mathzhaoliang  
    OP
       2017-10-10 21:52:06 +08:00 via Android
    @newworld
    @ranleng
    @xiaozizayang
    欢迎大家提出意见!
    Chingim
        28
    Chingim  
       2017-10-10 21:57:06 +08:00
    数学好的都是真大神
    zingl
        29
    zingl  
       2017-10-10 22:09:27 +08:00
    还以为是能生成 python 脚本的新东西
    yang2yang
        30
    yang2yang  
       2017-10-10 22:20:54 +08:00
    膜拜大佬
    Tunar
        31
    Tunar  
       2017-10-11 08:57:08 +08:00 via Android
    很 coooooool !
    lxy42
        32
    lxy42  
       2017-10-11 09:36:21 +08:00
    厉害
    zjddp
        33
    zjddp  
       2017-10-11 12:18:07 +08:00
    第 2500 star 已送上
    mathzhaoliang
        34
    mathzhaoliang  
    OP
       2017-10-11 12:29:41 +08:00
    @zjddp 哇,谢谢!!
    zhangzixu
        35
    zhangzixu  
       2017-10-11 13:55:16 +08:00
    学习学习
    sennes
        36
    sennes  
       2017-10-11 17:33:17 +08:00

    挺有趣的
    mathzhaoliang
        37
    mathzhaoliang  
    OP
       2017-10-12 08:33:52 +08:00
    @sennes 很棒!怎么做到在回复里面贴图片的?
    mathzhaoliang
        38
    mathzhaoliang  
    OP
       2017-10-12 11:14:52 +08:00
    @sennes 我知道了。你是传到新浪图库然后用 md 格式引入的。。。
    sennes
        39
    sennes  
       2017-10-12 11:24:18 +08:00
    @mathzhaoliang #36
    Hello 如果是新浪图库的话 直接贴地址就行了 不需要加 Markdown 格式
    另外我用的是一款叫 V2EX plus 的 Chrome 插件 可以直接在回复中插图的
    sennes
        40
    sennes  
       2017-10-12 11:59:33 +08:00
    @mathzhaoliang #36

    改了下颜色、调成正方形。path 和 fill 调成一样颜色。
    可以用来做头像了哈哈
    mathzhaoliang
        41
    mathzhaoliang  
    OP
       2017-10-12 14:27:20 +08:00
    @sennes 可以当头像吗?我看 V2EX 允许 GIF 格式的图片,但是上传动图作为头像会报错吧?
    sennes
        42
    sennes  
       2017-10-12 14:29:55 +08:00
    @mathzhaoliang #39 哈哈有些网站支持 gif 动图头像的。
    mathzhaoliang
        43
    mathzhaoliang  
    OP
       2017-10-13 15:58:53 +08:00
    @sennes 我在这个项目下的另一个程序 Reaction Diffusion Simulation 也可以用来生成字符动态图:

    http://wxt.sinaimg.cn/thumb300/4e130e36ly1fkgoanosrmg205k02snmt.gif?tags=%5B%5D
    mathzhaoliang
        44
    mathzhaoliang  
    OP
       2017-10-13 16:00:06 +08:00
    @sennes 那个地址不对,好像应该这样

    sennes
        45
    sennes  
       2017-10-13 18:04:41 +08:00
    @mathzhaoliang #42 好 我研究一下!
    f8281113
        46
    f8281113  
       2017-10-13 23:08:45 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去 ^v^
    dd0754
        47
    dd0754  
       2017-10-14 00:02:06 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    wisetc
        48
    wisetc  
       2017-10-15 17:42:09 +08:00
    高深
    buyaoshuohua
        49
    buyaoshuohua  
       2017-10-23 11:31:10 +08:00
    一脸蒙蔽的进来,一脸蒙蔽的出去
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2704 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:15 PVG 20:15 LAX 05:15 JFK 08:15
    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