源代码:https://github.com/ltoddy/Python-useful

sierpinskitriangle.py

from tkinter import *class SierpinskiTriangle:def __init__(self):window = Tk()window.title("Sierpinski Triangle")self.width, self.height = (200, 200)self.canvas = Canvas(window, width=self.width, height=self.height)self.canvas.pack()frame = Frame(window)frame.pack()Label(frame, text="Enter an order: ").pack(side=LEFT)self.order = StringVar()Entry(frame, textvariable=self.order, justify=RIGHT).pack(side=LEFT)Button(frame, text="display", command=self.display).pack(side=LEFT)window.mainloop()def display(self):self.canvas.delete("line")p1 = [self.width / 2, 10]p2 = [10, self.height - 10]p3 = [self.width - 10, self.height - 10]self.display_triangles(int(self.order.get()), p1, p2, p3)def display_triangles(self, order, p1, p2, p3):if order == 0:self.drawline(p1, p2)self.drawline(p2, p3)self.drawline(p3, p1)else:p12 = self.midpoint(p1, p2)p23 = self.midpoint(p2, p3)p31 = self.midpoint(p3, p1)self.display_triangles(order - 1, p1, p12, p31)self.display_triangles(order - 1, p12, p2, p23)self.display_triangles(order - 1, p31, p23, p3)def drawline(self, p1, p2):self.canvas.create_line(p1[0], p1[1], p2[0], p2[1], tags="line")def midpoint(self, p1, p2):p = 2 * [0]p[0] = (p1[0] + p2[0]) / 2p[1] = (p1[1] + p2[1]) / 2return pif __name__ == '__main__':SierpinskiTriangle()

谢尔宾斯基三角形,经典的分形图形.对应着递归定义.

需要用的tkinter这个第三方库:

pip install tkinter

谢尔宾斯基三角形GUI相关推荐

  1. python螺旋圆的绘制_python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)...

    插图工具使用Python内置的turtle模块,为什么叫这个turtle乌龟这个名字呢,可以这样理解,创建一个乌龟,乌龟能前进.后退.左转.右转,乌龟的尾巴朝下,它移动时就会画一条线.并且为了增加乌龟 ...

  2. 混沌与分形(一):谢尔宾斯基三角形与门格海绵

    研究混沌运动,少不了对分形理论的探讨.分形:通常被定义为"一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状",即具有自相似的性质. 本篇将从 ...

  3. turtle库使用教程 及 绘制 浪漫樱花 五角星 彩虹玫瑰 谢尔宾斯基三角形 实例

    目录 一.turtle简介 二.绘图坐标体系 三.笔画控制函数 四.形状绘制函数 五.颜色填充 六.浪漫樱花代码实例 七.五角星代码实例 八.彩虹玫瑰代码实例 九.谢尔宾斯基三角形代码实例 一.tur ...

  4. Python数据结构15:turtle模块制图,画直线,正方形,星星,递归可视化:分形树,谢尔宾斯基三角形

    1. Python中的turtle模块制图 前面已经讲了递归的原理,这里用递归作图来直观的理解递归. 首先了解以下Python中用于作图的内置海龟作图系统turtle module. Python内置 ...

  5. 数据结构与算法(Python版)二十二:递归可视化(谢尔宾斯基三角形)

    谢尔宾斯基Sierpinski三角形 分形构造, 平面称谢尔宾斯基三角形, 立体称谢尔宾斯基金字塔 谢尔宾斯基三角形:作图思路 根据自相似特性, 谢尔宾斯基三角形是由3个尺寸减半的谢尔宾斯基三角形按照 ...

  6. Python实验舱谢尔宾斯基三角形绘制教程

    三角形,大家应该再熟悉不过了. 上图是一个由四个小三角形拼成的大三角形,也叫谢尔宾斯基三角形. 谢尔宾斯基三角形还能继续画下去: 2阶(上图是1阶): 3阶: 5阶: 8阶: (小编奉劝一句:不要试图 ...

  7. 学习Python中turtle模块的基本用法(4:绘制科赫曲线和谢尔宾斯基三角形)

      科赫曲线和谢尔宾斯基三角形是常见的分形图形(详细介绍见参考文献1),本文使用turtle库绘制这两类图形. 科赫曲线   科赫曲线的详细介绍见参考文献2,其中的绘图思路是"画正三角形,并 ...

  8. 小练手:用Canvas绘制谢尔宾斯基三角形

    转载<小练手:用Canvas绘制谢尔宾斯基三角形> 补充 作者第二种画法的完整程序: PS:修改function SierpinskiTriangle(p,len,depth = 9)中d ...

  9. 分形——谢尔宾斯基三角形

    分形--谢尔宾斯基三角形 普通几何学研究的对象,一般都具有整数的维数.比如,零维的点.一维的线.二维的面.三维的立体.乃至四维的时空.在20世纪70年代末80年代初,产生了新兴的分形几何学(fract ...

最新文章

  1. Symfony3.0 实践教程 (三) 安装与配置Symfony
  2. Eigen有哪些需要注意的操作
  3. MYSQL查询空值/NULL值
  4. JAVA设计模式--辛格尔顿
  5. 使用JDK 13查看TLS配置
  6. HTML5/CSS3基础
  7. python php 网站_python php网站
  8. 短文本合并重复(去重)的简单有效做法
  9. 【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程...
  10. python异步IO编程(一)
  11. nginx 访问频率限制配置
  12. 失传万年的PS致富经典(六)
  13. wword中如何在方框(□)中打钩(√)
  14. VMware esxi6.7虚拟机安装教程
  15. 【Python机器学习及实践】实战篇:泰坦尼克号罹难乘客预测
  16. 腾讯bugly热更新接入
  17. 路由器更换wan口及vlan配置
  18. cubemx实现CAN通讯
  19. 数据库操作银行管理系统
  20. fcpx插件:Stupid raisins show pop for Mac(20个标题展示模板

热门文章

  1. Python毕业设计 抖音短视频数据分析与可视化 - python 大数据 可视化
  2. 打卡机的设计——基本功能
  3. ReactNative豆瓣电影项目
  4. Linux中使用mvn命令(使用Maven:-bash:mvn:command not fonud)随笔
  5. /dev/random和/dev/urandom
  6. 养活一团春意思,撑起两根穷骨头
  7. Linux基础之计划任务
  8. 【会议记录】2022北京网络安全大会-杨珉-软件供应链安全治理之漏洞补丁:现状及应对方案
  9. 重启打印服务Print Spooler bat脚本
  10. xpose和sxpose,谁是卧底?