Turtle_Drawing

利用Turtle递归绘制分形几何图形

一、Turtle的常用方法

方法

描述

turtle.forward(distance)

向当前画笔方向移动distance像素长度

turtle.backward(distance)

向当前画笔相反方向移动distance像素长度

turtle.right(degree)

顺时针移动degree°

turtle.left(degree)

逆时针移动degree°

turtle.penup()

提起笔移动,不绘制图形,用于另起一个地方绘制

turtle.pendown()

移动时绘制图形,缺省时也为绘制

turtle.goto(x,y)

将画笔移动到坐标为x,y的位置

turtle.mainloop()或turtle.done()

保持图形不消失,必须是乌龟图形程序中的最后一个语句

turtle.fillcolor(colorstring)

对绘制图形进行颜色填充

turtle.color(color1, color2)

同时设置pencolor=color1, fillcolor=color2

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成

turtle.hideturtle()

隐藏画笔的turtle形状

turtle.showturtle()

显示画笔的turtle形状

二、绘制简单图形

正方形

正方形填充颜色

五角星

八角形

三、递归绘制雪花

雪花的绘制,可以看作是三个完全相同部分的叠加,所以只需要绘制出一个基本图形,其他的图形在此基础上旋转方向即可。

初始的图形(即0阶)是一条线段,每增加一阶,则将上一阶线段中间1/3的位置上画一个三角形,代码如下:

def snow(size , level):

#递归出口,如果阶数减为0,则只是绘制一个线段

if level == 0:

turtle.forward(size)

else:

#递归调用,线段长度减为原来的1/3,阶数减一,绘制降阶后的图形

snow(size/3, level-1)

#相左旋转60度,绘制第二个“儿子”的图形

turtle.left(60)

snow(size/3, level-1)

#向右旋转120度,绘制第三个“儿子”的图形

turtle.right(120)

snow(size/3, level-1)

#向左旋转60度,绘制第四个儿子的图形

turtle.left(60)

snow(size/3, level-1)

0阶图形

1阶图形

2阶图形

3阶图形

则在上面的基础上,可以绘制雪花图案如下:

1阶雪花

2阶雪花

3阶雪花

4阶雪花

四、递归绘制树

使用递归算法绘制树的图形

def tree(size, level):

if level == 1:

turtle.forward(size) #递归出口

else:

turtle.forward(size)

#开始画左半边的树

turtle.right(60)

#回退前递归

tree(size / 2, level - 1);

#回退

turtle.backward(size/2)

#绘制右半边树

turtle.left(120)

tree(size / 2, level-1)

turtle.backward(size/2)

#方向归位

turtle.right(60)

9阶树的图形如下

python 画八角形_GitHub - xuedengyue/Turtle_Drawing: 利用Turtle递归绘制分形几何图形相关推荐

  1. python turtle画彩虹的代码_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  2. python用turtle画月亮的代码_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  3. python画一棵树源代码_Python+Turtle动态绘制一棵树实例分享

    本文实例主要是对turtle的使用,实现Python+turtle动态绘制一棵树的实例,具体代码: # drawtree.py from turtle import Turtle, mainloop ...

  4. python画奥运五环小结_python使用turtle库绘制奥运五环

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  5. python的turtle怎么画曲线_利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...

  6. python画笑脸-python 利用turtle库绘制笑脸和哭脸的例子

    我就废话不多说了,直接上代码吧! import turtle turtle.pensize(5) turtle.pencolor("yellow") turtle.fillcolo ...

  7. python turtle画彩虹-Python利用turtle库绘制彩虹代码示例_天津SEO

    天津SEO RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为RGB模型 代码示例: #-*- coding:utf-8 –*- f ...

  8. python用turtle画彩虹_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  9. python画笑脸图案-python 利用turtle库绘制笑脸和哭脸的例子

    我就废话不多说了,直接上代码吧! import turtle turtle.pensize(5) turtle.pencolor("yellow") turtle.fillcolo ...

最新文章

  1. 2021年Java面试题目最新总结【90%面试会踩的坑】
  2. matlab中窗函数的使用(一)
  3. 输出超限怎么解决 oj_三菱PLC输出指示灯输出模块不亮怎么解决
  4. VC++创建个性的对话框之MFC篇
  5. 欢迎使用CSDN-markdown编辑器2131
  6. linux帮助命令和用法,Linux命令帮助及history命令的使用
  7. c语言中有关main的问题,c语言小问题
  8. 想学人工智能从哪入手?
  9. zetoro导入csl 软件学报
  10. mysql 字段 英文 变 中文_Oracle将英文字符集数据转换成中文
  11. VB 2010中Excel文件处理的一个奇怪问题
  12. nodejs遍历文件夹下所有文件
  13. 某头条安卓逆向学习----改机/逆向/Hook/协议
  14. 空手套白狼的典型案例,不花一分钱,整合别家产品,赚自己的钱
  15. 为promise增加abort功能
  16. JS window对象
  17. Redis中的keys和Hkeys的区别
  18. php 获取数组四分位,如何在JavaScript(或PHP)中获得数组的中位数和四分位数/百分位数?...
  19. 如何在ps中将图片素描化
  20. 《东周列国志》第一回 周宣王闻谣轻杀 杜大夫化厉鸣冤

热门文章

  1. 前些日子联想大y终于到手
  2. 【笔记】每一对顶点间的最短路径
  3. 将手机或者平板变成电脑的第二屏幕
  4. 学习Python的第三节课
  5. 什么是python的库_什么是python标准库
  6. JS正则表达式(全)
  7. RocketMQ安装
  8. ssm毕设项目民族地区文化调研与数字化保护技术研究---青海平弦乐库的建设及播放平台开发l3479(java+VUE+Mybatis+Maven+Mysql+sprnig)
  9. SQL server中ROW_NUMBER() OVER()函数的使用方法
  10. 利用C语言编写一个网络分析器