python递归三角形_python 谢尔宾斯基三角形的递归实现
import turtle
def draw(points):
# 根据三个坐标,画一个三角形
t.penup()
t.goto(points['left'])
t.pendown()
t.goto(points['top'])
t.goto(points['right'])
t.goto(points['left'])
def getMid(p1,p2):
# 获取两个坐标的中点的坐标
return (p1[0]+p2[0])/2,(p1[1]+p2[1])/2
def sierpinski(degree,points):
draw(points)
if degree > 0:
# 以原三角形左边底角坐标为起点,画一个边长为原来三角形边长一半的等边三角形
sierpinski(degree-1,{'left':points['left'],'top':getMid(points['left'],points['top']),'right':getMid(points['left'],points['right']) })
# 以原三角形左边中点坐标为起点,画一个边长为原来三角形边长一半的等边三角形
sierpinski(degree-1,{'left':getMid(points['left'],points['top']),'top':points['top'],'right':getMid(points['top'],points['right']) })
# 以原三角形底边中点坐标为起点,画一个边长为原来三角形边长一半的等边三角形
sierpinski(degree-1,{'left':getMid(points['left'],points['right']),'top':getMid(points['top'],points['right']),'right':points['right'] })
t = turtle.Turtle()
t.speed(3) # 画笔速度
# 初始的三角形的三个顶点
points = {'left':(-200,-100),'top':(0,200),'right':(200,-100)}
sierpinski(3,points)
turtle.done()
标签:right,递归,python,top,谢尔宾,points,三角形,getMid,left
来源: https://www.cnblogs.com/wztshine/p/12990045.html
python递归三角形_python 谢尔宾斯基三角形的递归实现相关推荐
- 数据结构与算法(Python版)二十二:递归可视化(谢尔宾斯基三角形)
谢尔宾斯基Sierpinski三角形 分形构造, 平面称谢尔宾斯基三角形, 立体称谢尔宾斯基金字塔 谢尔宾斯基三角形:作图思路 根据自相似特性, 谢尔宾斯基三角形是由3个尺寸减半的谢尔宾斯基三角形按照 ...
- Python实验舱谢尔宾斯基三角形绘制教程
三角形,大家应该再熟悉不过了. 上图是一个由四个小三角形拼成的大三角形,也叫谢尔宾斯基三角形. 谢尔宾斯基三角形还能继续画下去: 2阶(上图是1阶): 3阶: 5阶: 8阶: (小编奉劝一句:不要试图 ...
- python螺旋圆的绘制_python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)...
插图工具使用Python内置的turtle模块,为什么叫这个turtle乌龟这个名字呢,可以这样理解,创建一个乌龟,乌龟能前进.后退.左转.右转,乌龟的尾巴朝下,它移动时就会画一条线.并且为了增加乌龟 ...
- Python数据结构15:turtle模块制图,画直线,正方形,星星,递归可视化:分形树,谢尔宾斯基三角形
1. Python中的turtle模块制图 前面已经讲了递归的原理,这里用递归作图来直观的理解递归. 首先了解以下Python中用于作图的内置海龟作图系统turtle module. Python内置 ...
- 小白第一步|Java实现递归分形(以谢尔宾斯基三角形和勾股树为例)
一个递归分形搞得我心态爆炸 于是 我一定要写个博客祭奠一下!!!!!! 首先回顾一下递归的几个要素: 1.return:往上回溯 2.调用自身:往下挖掘 3.设置条件:防止无限递归 4.递归操作:分析 ...
- Java面向对象编程:利用递归思想绘制“谢尔宾斯基地毯”和“谢尔宾斯基三角形”
1.递归:在方法中调用本方法. 2.递归调用会无限循环下去,因此方法体中必须有结束方法的条件.返回值为void时通常写为: if (条件) {return; } 下面使用递归绘制"谢尔宾斯基 ...
- 学习Python中turtle模块的基本用法(4:绘制科赫曲线和谢尔宾斯基三角形)
科赫曲线和谢尔宾斯基三角形是常见的分形图形(详细介绍见参考文献1),本文使用turtle库绘制这两类图形. 科赫曲线 科赫曲线的详细介绍见参考文献2,其中的绘图思路是"画正三角形,并 ...
- 混沌与分形(一):谢尔宾斯基三角形与门格海绵
研究混沌运动,少不了对分形理论的探讨.分形:通常被定义为"一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状",即具有自相似的性质. 本篇将从 ...
- turtle库使用教程 及 绘制 浪漫樱花 五角星 彩虹玫瑰 谢尔宾斯基三角形 实例
目录 一.turtle简介 二.绘图坐标体系 三.笔画控制函数 四.形状绘制函数 五.颜色填充 六.浪漫樱花代码实例 七.五角星代码实例 八.彩虹玫瑰代码实例 九.谢尔宾斯基三角形代码实例 一.tur ...
最新文章
- 不说12306你会Die啊?当然不会,但会憋死
- 从今天要开始复习和提升linux了, 为期 2月, 加油
- 查看模拟器使用端口_为什么我们仍然使用模拟音频端口?
- Android数据库Realm实践
- LoadRunner Vuser测试脚本添加前置条件举例
- c# html正则,c# 使用正则解析html
- 小程序源码:酒桌扑克娱乐喝酒小游戏-多玩法安装简单
- Jira中的Tempo查看component以及issue的工作量汇总
- IMO A.688(16) 寝具用品点燃性测试
- c语言中竖线的作用,c语言中一条竖线是什么符号?
- 曝NV或将推出新一代Titan显卡:48G显存 功率高达900W
- opentstack使用keypair文件登陆实例
- Oauth与Shiro整合的开源项目
- 2018ICPC青岛区域赛 zoj4062 Plants vs. Zombies
- 变分贝叶斯推断(Variational Bayes Inference)简介
- CF22A Second Order Statistics
- Cypher查询语言
- 黑马ssm学习笔记-企业权限管理系统
- java爬虫 抓取知乎,java爬虫抓取知乎推荐总是乱码
- 金蝶erp与易飞erp区别_文化问题:敏捷和ERP第三部分