Holmesian Blog

神奇的Python混乱代码

Python代码一直是讲究整洁的,其格式化的特性已经深入代码的编写,但是即使是这样从语法上限制格式还是有NB人士写出了下面的混乱代码,下面就是一段神奇的Python混乱代码,代码效果是生成彭罗斯铺砖图案:当这段代码运行时,它会产生一个1000×1000的png格式的彭罗斯铺砖图案,里面包含有大概2212个具有3D浮雕效果的彭罗斯铺砖图。

这个脚本需要Pycairo代码库。它只能运行在Python <= 2.7 版本上

彭罗斯铺砖法是个很神奇的东西,它的图案呈不规则周期状分布——你移动角度后都找不到再次重合的图案。它由罗杰·彭罗斯(Sir Roger Penrose)经过无数次的五边形铺拼试验而成。

    
    _                                 =\
                                    """if!
                                  1:"e,V=100
                                0,(0j-1)**-.2;
                               v,S=.5/  V.real,
                             [(0,0,4      *e,4*e*
                           V)];w=1          -v"def!
                          E(T,A,              B,C):P
                      ,Q,R=B*w+                A*v,B*w+C
                *v,A*w+B*v;retur              n[(1,Q,C,A),(1,P
         ,Q,B),(0,Q,P,A)]*T+[(0,C            ,R,B),(1,R,C,A)]*(1-T)"f
    or!i!in!_[:11]:S       =sum([E          (*x)for       !x!in!S],[])"imp
      ort!cair               o!as!O;      s=O.Ima               geSurfac
       e(1,e,e)               ;c=O.Con  text(s);               M,L,G=c.
         move_to                ,c.line_to,c.s                et_sour
           ce_rgb                a"def!z(f,a)                :f(-a.
            imag,a.       real-e-e)"for!T,A,B,C!in[i       !for!i!
              in!S!if!i[""";exec(reduce(lambda x,i:x.replace(chr
               (i),"\n "[34-i:]),   range(   35),_+"""0]]:z(M,A
                 );z(L,B);z         (L,C);         c.close_pa
                 th()"G             (.4,.3             ,1);c.
                 paint(             );G(.7             ,.7,1)
                 ;c.fil             l()"fo             r!i!in
                 !range             (9):"!             g=1-i/
                 8;d=i/          4*g;G(d,d,d,          1-g*.8
                 )"!def     !y(f,a):z(f,a+(1+2j)*(     1j**(i
                 /2.))*g)"!for!T,A,B,C!in!S:y(M,C);y(L,A);y(M
                 ,A);y(L,B)"!c.st            roke()"s.write_t
                 o_png('pen                        rose.png')
                 """                                       ))

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »