turtle的基础使用之python turtle递归绘图
作者:开始King 发布时间:2023-04-25 23:36:08
标签:python,turtle,递归,绘图
1创建窗口
1 turtle.setup(width,height,startx,starty)设置主窗口的大小和位置,
width
如果是整数,则以像素为单位的大小,如果是浮点数,则屏幕的一部分;默认为屏幕的 50%。height
如果是整数,则以像素为单位的高度,如果是浮点数,则为屏幕的一部分;默认为屏幕的 75%startx
如果为正,则从屏幕左边缘开始以像素为单位,如果从右边缘为负,如果没有,则水平居中窗口starty
如果为正,则从屏幕上边缘开始以像素为单位,如果为负,则从下边缘开始,如果没有,则垂直居中窗口
turtle.title
设置海龟窗口的标题
2 turtle.screensize(canvwidth=None, canvheight=None, bg=None),以像素为单位的宽,高。bg颜色字符串或颜色元组,新的背景颜色
2.画笔移动
"""
初始情况画笔面朝东位于画布中央
"""
turtle.penup() # 抬起画笔
turtle.penup() # 抬起画笔 不再画线
turtle.pendown() # 放下画笔
turtle.forward(10) # 前进 整数或浮点数
turtle.backward(10)
turtle.left(90) # 向左 整数或浮点数
turtle.right(90)
turtle.goto() # 移动画笔到绝对位置, 如果 y 为 None,x 必须是一对坐标或 Vec2D(例如,由 pos() 返回)
turtle.setx(x) #将海龟的第一个坐标设置为 x,第二个坐标保持不变。 整数或浮点数
turtle.sety(y) #
turtle.home() # 将海龟回复到初始位置和初始方向
turtle.circle(radius, extent=None, steps=None) # 画一个给定半径的圆
"""
radius 半径 如果半径为正,则按逆时针方向绘制圆弧,否则按顺时针方向绘制。
extent 角度 确定绘制圆的哪个部分。如果没有给出范围,则绘制整个圆圈
"""
turtle.speed() # 画笔速度 0-10的整数
"""
“fastest”: 0
“fast”: 10
“normal”: 6
“slow”: 3
“slowest”: 1
如果输入是大于 10 或小于 0.5 的数字,则速度设置为 0。
"""
turtle.position() # 返回当前海龟的位置
turtle.pensize(width=None) # 设置线条的宽度
turtle.pencolor(*args) # 画笔的颜色 "red", "yellow", "#33cc8c", (0.2, 0.8, 0.55)
turtle.done() # 让图像一直显示 启动事件循环 - 调用 Tkinter 的 mainloop 函数 必须是海龟图形程序中的最后一条语句。
还有一些不常见的
turtle.seth() # 角度, 但是每次旋转后小乌龟的方向恢复到正X方向,即东(east)
turtle.heading() # 返回当前乌龟的方向
turtle.begin_fill() # 在绘制要填充的形状之前调用。
turtle.fillcolor(*args) # 填充色
turtle.end_fill() # 填充最后一次调用 begin_fill() 后绘制的形状。
import turtle
turtle.screensize(200, 100)
turtle.begin_fill()
turtle.fillcolor('blue')
turtle.forward(60)
turtle.left(120)
turtle.forward(60)
turtle.left(120)
turtle.forward(60)
turtle.end_fill()
turtle.done()
3.递归画图
import turtle
# turtle.screensize(800,600, "white")
turtle.setup(width=0.6,height=0.6)
turtle.penup()
turtle.left(90)
turtle.forward(200)
turtle.pendown()
turtle.right(180)
def draw(n):
if n==10:
turtle.forward(30)
if n<10:
turtle.forward(30)
turtle.right(90)
turtle.forward(30)
# 让画笔朝南
turtle.left(90)
draw(n+1) # 递归调用
turtle.left(180)
turtle.forward(30)
turtle.right(90)
turtle.forward(60)
turtle.right(90)
turtle.forward(30) # 完成图形了,但是要把turtle归位
# 接下来就是归位
turtle.left(180)
turtle.forward(30)
turtle.left(90)
turtle.forward(30)
turtle.left(90)
draw(0)
turtle.done() # 画图完成后不会自动关闭
来源:https://blog.csdn.net/m0_52118763/article/details/123035104


猜你喜欢
- *在起初pip install matplotlib时,主动安装到当时最新版本(matplotlib==3.3.2),在StackOverf
- 数据库设计范式目前数据库设计有五种范式 , 一般我们数据库只需要满足前三项即可第一范式 : 确保每列保持原子性什么是原子性? 意思就是不可再
- 标志是一种简单的工具,就象铁锤,简单实用。如果一种工具功能太多导致其效用减弱,那就让它保持简单。你并不需要一把有太多装饰的精美铁锤。对于象征
- python实现学员管理系统这个小程序是我刚刚接触python时,导师带着做的第一个小项目。通过这次练习,我学会了很多东西。下面是具体的代码
- 一.字典的基本方法1.新建字典1)、建立一个空的字典>>> dict1={} >>> dict2=dic
- 最近没事刚好联系下vue+springboot前段后分离的项目、用上了图片上传功能、记录一下。前端待提交的表单部分代码<el-form
- 报错代码粉丝群一个小伙伴想pandas创建DataFrame对象,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决
- 一、基本介绍在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等等。在 Go 中,开发者为我们提供了 time 包
- 在对excel的操作中,调整列的顺序以及添加一些列也是经常用到的,下面我们用pandas实现这一功能。1、调整列的顺序>>>
- 深入解析Linux下MySQL数据库的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (
- 本文列出了HTML4标签的默认样式列表,对网页设计者来说这个应该很有用。原文来自:W3C (http://www.w3.org/TR/CSS
- 主键的生成方式主要有三种: 一. 数据库自动生成 二. GUID 三. 开发创建 严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行
- 这篇文章主要介绍了python DataFrame转dict字典过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 一、开头匹配从字符串开头开始匹配返回匹配对象;如果找不到匹配,则为Noneimport reprint(re.match('飞兔小哥
- 之前用Vue+element写了一个后台管理系统,在登录时使用axios请求数据传参时无法正常的获取数据。之后也是一通百度,发现原因是传递参
- win7 pycharm设置界面全黑色方法:1.设置默认PyCharm解析器: 操作如下:Python–>Preferences–&g
- ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal We
- 因为python是动态语言,变量类型是可变的,所以不管pycharm还是sublime都做不到准确的类型推断。一个比较取巧的做法是asser
- 先来看一下Spring官网首页的一个图片滑动显示效果可以看到, 随着鼠标的滑动,绿色图片和灰色图片可以无缝的在鼠标俩两边切换显示。显示这样的
- 我就废话不多说了,大家还是直接看代码吧!#执行结果转化为dataframedf = pd.DataFrame(list(result))补充