谢尔宾斯基三角形GUI
源代码: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相关推荐
- python螺旋圆的绘制_python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)...
插图工具使用Python内置的turtle模块,为什么叫这个turtle乌龟这个名字呢,可以这样理解,创建一个乌龟,乌龟能前进.后退.左转.右转,乌龟的尾巴朝下,它移动时就会画一条线.并且为了增加乌龟 ...
- 混沌与分形(一):谢尔宾斯基三角形与门格海绵
研究混沌运动,少不了对分形理论的探讨.分形:通常被定义为"一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状",即具有自相似的性质. 本篇将从 ...
- turtle库使用教程 及 绘制 浪漫樱花 五角星 彩虹玫瑰 谢尔宾斯基三角形 实例
目录 一.turtle简介 二.绘图坐标体系 三.笔画控制函数 四.形状绘制函数 五.颜色填充 六.浪漫樱花代码实例 七.五角星代码实例 八.彩虹玫瑰代码实例 九.谢尔宾斯基三角形代码实例 一.tur ...
- Python数据结构15:turtle模块制图,画直线,正方形,星星,递归可视化:分形树,谢尔宾斯基三角形
1. Python中的turtle模块制图 前面已经讲了递归的原理,这里用递归作图来直观的理解递归. 首先了解以下Python中用于作图的内置海龟作图系统turtle module. Python内置 ...
- 数据结构与算法(Python版)二十二:递归可视化(谢尔宾斯基三角形)
谢尔宾斯基Sierpinski三角形 分形构造, 平面称谢尔宾斯基三角形, 立体称谢尔宾斯基金字塔 谢尔宾斯基三角形:作图思路 根据自相似特性, 谢尔宾斯基三角形是由3个尺寸减半的谢尔宾斯基三角形按照 ...
- Python实验舱谢尔宾斯基三角形绘制教程
三角形,大家应该再熟悉不过了. 上图是一个由四个小三角形拼成的大三角形,也叫谢尔宾斯基三角形. 谢尔宾斯基三角形还能继续画下去: 2阶(上图是1阶): 3阶: 5阶: 8阶: (小编奉劝一句:不要试图 ...
- 学习Python中turtle模块的基本用法(4:绘制科赫曲线和谢尔宾斯基三角形)
科赫曲线和谢尔宾斯基三角形是常见的分形图形(详细介绍见参考文献1),本文使用turtle库绘制这两类图形. 科赫曲线 科赫曲线的详细介绍见参考文献2,其中的绘图思路是"画正三角形,并 ...
- 小练手:用Canvas绘制谢尔宾斯基三角形
转载<小练手:用Canvas绘制谢尔宾斯基三角形> 补充 作者第二种画法的完整程序: PS:修改function SierpinskiTriangle(p,len,depth = 9)中d ...
- 分形——谢尔宾斯基三角形
分形--谢尔宾斯基三角形 普通几何学研究的对象,一般都具有整数的维数.比如,零维的点.一维的线.二维的面.三维的立体.乃至四维的时空.在20世纪70年代末80年代初,产生了新兴的分形几何学(fract ...
最新文章
- Symfony3.0 实践教程 (三) 安装与配置Symfony
- Eigen有哪些需要注意的操作
- MYSQL查询空值/NULL值
- JAVA设计模式--辛格尔顿
- 使用JDK 13查看TLS配置
- HTML5/CSS3基础
- python php 网站_python php网站
- 短文本合并重复(去重)的简单有效做法
- 【每日算法Day 72】谷歌面试题:又双叒叕是位运算,最详细的自动机推导过程...
- python异步IO编程(一)
- nginx 访问频率限制配置
- 失传万年的PS致富经典(六)
- wword中如何在方框(□)中打钩(√)
- VMware esxi6.7虚拟机安装教程
- 【Python机器学习及实践】实战篇:泰坦尼克号罹难乘客预测
- 腾讯bugly热更新接入
- 路由器更换wan口及vlan配置
- cubemx实现CAN通讯
- 数据库操作银行管理系统
- fcpx插件:Stupid raisins show pop for Mac(20个标题展示模板