用Python代码来绘制彭罗斯点阵的教程


Posted in Python onApril 03, 2015

这里是显示彭罗斯点阵的Python的脚本。是的,这是可以运行的有效Phython代码。

译注:彭罗斯点阵,物理学术语。上世纪70年代英国数学家彭罗斯第一次提出了这个概念,称为彭罗斯点阵(Pen-rose tiles)。
 

_                 =\
                """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')
       """                    ))

当这个程序运行时,它输出了一个1000×1000的图像文件,包含大约2212个由3D立体效应渲染的彭罗斯点阵。这里是该图像的一部分(点击放大)。

用Python代码来绘制彭罗斯点阵的教程

运行该脚本需要Pycairo。它只在Python它是标准的Python脚本,但我努力想把它变得更简洁,于是我又从中删减了一些。

编注:Pycairo是一组Python版本的Cario图形库。

彭罗斯点阵很酷,因为它们非周期性地覆盖了整个平面——图片的转换副本与原型从来不会一致。它们是由Roger Penrose先生通过将五边形的平面平铺在一起的一系列尝试而发明的。

与C或Perl相比,Python并不是让人迷惑的编程语言。这种比较似乎也从未发生,而且在网上也没有多少让人费解的Python的例子:你可以在官方的Python常见问题中或各种网页如这里和这里找到一些例子。在2011年的PyCon对此还有专题讨论。

我相信输出一个高分辨率的图像是第一个让人费解的Python程序。如果你知道其它的例子,可以在评论中告诉我。

Python 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
利用python 下载bilibili视频
Nov 13 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
pandas中DataFrame检测重复值的实现
May 26 Python
利用Python演示数型数据结构的教程
Apr 03 #Python
简洁的十分钟Python入门教程
Apr 03 #Python
初步解析Python中的yield函数的用法
Apr 03 #Python
几个提升Python运行效率的方法之间的对比
Apr 03 #Python
对于Python的Django框架使用的一些实用建议
Apr 03 #Python
《Python之禅》中对于Python编程过程中的一些建议
Apr 03 #Python
给Python初学者的一些编程技巧
Apr 03 #Python
You might like
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
教你安装python Django(图文)
2013/11/04 Python
Python的print用法示例
2014/02/11 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
用python处理MS Word的实例讲解
2018/05/08 Python
Python if语句知识点用法总结
2018/06/10 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
Python 操作 MySQL数据库
2020/09/18 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
疾病捐款倡议书
2014/05/13 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
实习单位推荐信
2015/03/27 职场文书