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 谢尔宾斯基三角形的递归实现相关推荐

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

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

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

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

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

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

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

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

  5. 小白第一步|Java实现递归分形(以谢尔宾斯基三角形和勾股树为例)

    一个递归分形搞得我心态爆炸 于是 我一定要写个博客祭奠一下!!!!!! 首先回顾一下递归的几个要素: 1.return:往上回溯 2.调用自身:往下挖掘 3.设置条件:防止无限递归 4.递归操作:分析 ...

  6. Java面向对象编程:利用递归思想绘制“谢尔宾斯基地毯”和“谢尔宾斯基三角形”

    1.递归:在方法中调用本方法. 2.递归调用会无限循环下去,因此方法体中必须有结束方法的条件.返回值为void时通常写为: if (条件) {return; } 下面使用递归绘制"谢尔宾斯基 ...

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

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

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

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

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

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

最新文章

  1. 不说12306你会Die啊?当然不会,但会憋死
  2. 从今天要开始复习和提升linux了, 为期 2月, 加油
  3. 查看模拟器使用端口_为什么我们仍然使用模拟音频端口?
  4. Android数据库Realm实践
  5. LoadRunner Vuser测试脚本添加前置条件举例
  6. c# html正则,c# 使用正则解析html
  7. 小程序源码:酒桌扑克娱乐喝酒小游戏-多玩法安装简单
  8. Jira中的Tempo查看component以及issue的工作量汇总
  9. IMO A.688(16) 寝具用品点燃性测试
  10. c语言中竖线的作用,c语言中一条竖线是什么符号?
  11. 曝NV或将推出新一代Titan显卡:48G显存 功率高达900W
  12. opentstack使用keypair文件登陆实例
  13. Oauth与Shiro整合的开源项目
  14. 2018ICPC青岛区域赛 zoj4062 Plants vs. Zombies
  15. 变分贝叶斯推断(Variational Bayes Inference)简介
  16. CF22A Second Order Statistics
  17. Cypher查询语言
  18. 黑马ssm学习笔记-企业权限管理系统
  19. java爬虫 抓取知乎,java爬虫抓取知乎推荐总是乱码
  20. 金蝶erp与易飞erp区别_文化问题:敏捷和ERP第三部分

热门文章

  1. 手写linux系统,手把手教你 从零开始手写redux
  2. Hadoop,Spark面试题汇总
  3. int 几个字节 python_Python中一个int类型占了几个字节
  4. 任务二:停电停多久问题关键算法
  5. MacOS安装Go2Shell
  6. 仲裁判决要求高通向黑莓退还8.149亿美元专利费
  7. 相机相关参数及视野计算
  8. FME中二维管线数据三维化及生成带属性3dtiles
  9. 在Win9x/NT下获取硬盘物理序列号
  10. python 开立方注意事项