Turtle模块基本方法和使用(画布)
方法
|
简写
|
描述
|
例子
|
移动和绘制
|
|||
forward()
|
fd()
|
前进
|
turtle.forward(10):前进10个单位 |
backward()
|
bk()、back()
|
后退
|
turtle.backward():后退10个单位
|
right()
|
rt()
|
右转
|
turtle.rignt(30):向右旋转30°
|
left
|
lt()
|
左转
|
turtle.left(30):向左旋转30°
|
goto()、setpos()、setposition()
|
|
定位/前往
|
turtle.goto(0,0):小乌龟移动到原点处
|
setx()
|
|
设置x坐标
|
turtle.setx(10):设置x坐标为10个单位
|
sety()
|
|
设置y坐标
|
turtle.sety(10):设置y坐标为10个单位
|
setheading()
|
seth()
|
设置朝向
|
turtle.seth(90):设置小乌龟为90度方向
|
home()
|
|
返回原点
|
turtle.home():小乌龟返回原点,并设置朝向为初始方向
|
circle()
|
|
画圆
|
turtle.circle(100,360,6):画出一个半径为100的圆的内切六边形
turtle.circle(100,180):画出一条半径为100,夹角为180度的圆弧
|
dot()
|
|
画点
|
turtle.dot(10,'red'):画出大小为10的红点
|
stamp()
|
|
印章(光标指针形状)
|
turtle.stamp():在当前位置印制小乌龟形状(光标指针形状),返回印章id
|
clearstamp()
|
|
清除印章
|
turtle.clearstamp(指定印章id):清除指定印章
|
clearstamps()
|
|
清除多个印章
|
turtle.clearstamps(2):清除前2个印章
|
undo()
|
|
撤销一个小乌龟动作
|
turtle.undo():撤销一个小乌龟动作,使用for循环撤销多个动作
|
speed()
|
|
设置画笔速度
|
turtle.speed(10):设置【0-10】速度等级,数字越大越快
|
获取小乌龟的状态
|
|||
position()
|
pos()
|
获取小乌龟当前坐标位置
|
turtle.position():获取小乌龟当前坐标
|
towards()
|
|
目标方向(角度)
|
turtle.towards(0,0):假如小乌龟初始位置在(10,10),那么这个值为从这点到(0,0)之间的连线的夹角,方向和旋转根据小乌龟的模式决定(standard、logo)
|
xcor()
|
|
获取x坐标
|
turtle.xcor():返回当前小乌龟的x坐标
|
ycor()
|
|
获取y坐标
|
turtle.ycor():返回当前小乌龟的y坐标
|
heading()
|
|
获取朝向
|
turtle.heading():返回当前小乌龟的朝向
|
distance()
|
|
获取距离
|
turtle.distance(0,0):假如小乌龟初始位置在(10,10),那么这个值为从这点到(0,0)之间的距离
|
设置与度量单位
|
|||
degrees()
|
|
设置角度
|
turtle.degrees(400):设置总的角度为400度,如果之前的总的角度为360度,且当前角度为90度,那么设置了400后,此时的当前位置度数为100度,计算:90/360=100/400
|
radians()
|
|
设置弧度
|
turtle.radians():设置角度为弧度,如当前角度为90度,设置后弧度为1.57,即90°=π/2≈1.57
|
绘图状态
|
|||
pendown()
|
pd()、down()
|
画笔落下 |
turtle.down():画笔落下
|
penup()
|
pu()、up()
|
画笔抬起
|
turtle.up():画笔抬起
|
pensize()
|
width()
|
设置画笔粗细(大小)
|
turtle.pensize():设置画笔大小
|
pen()
|
|
设置画笔属性
|
turtle.pen(fillcolor='yellow',pencolor='red',pensize='5'):设置多个画笔属性
|
isdown()
|
|
画笔是否落下
|
turtle.isdown():判断画笔是否落下,返回布尔值
|
颜色控制
|
|||
color()
|
|
设置颜色
|
turtle.color('red','yellow'):设置和返回画笔颜色为红色,填充颜色为黄色
|
pencolor()
|
|
画笔颜色
|
turtle.pencolor('red'):设置和返回画笔颜色为红色
|
fillcolor()
|
|
填充颜色
|
turtle.fillcolor('red'):设置和返回填充颜色为红色
|
填充
|
|||
filling()
|
|
是否填充
|
turtle.filling():判断是否填充,返回布尔值
|
begin_fill()
|
|
开始填充
|
turtle.begin_fill():在绘制要填充的图形之前调用
|
end_fill()
|
|
结束填充
|
turtle.end_fill():从开始填充到画完要填充的图形后调用,结束填充
|
更多绘图控制
|
|||
reset()
|
|
重置指定Turtle对象的小乌龟和绘图
|
turtle.reset():删除小乌龟绘制的图形,并回到原点,所有设置回复默认值
|
clear()
|
|
清空指定Turtle对象所绘的图形
|
turtle.clear():删除指定小乌龟的绘图,turtle为一个Turtle的对象,若有多个Turtle对象时,指定一个进行删除
|
write()
|
|
书写文本,turtle.write(arg,move='False',align='center',font=('Arial',8,'normal')):arg为写的内容,align为对齐方式,
|
turtle.write('你好',True,align='center',font=('Arial',10,'normal')):在画布中写入文本为“你好”,以小乌龟位置居中,字体为Arial,大小为10,字体类型为正常,bold为加粗,写完后小乌龟移动到文本的右下角(move为True)
|
可见性
|
|||
showturtle()
|
st()
|
显示小乌龟
|
turtle.st():显示小乌龟
|
hideturtle()
|
ht()
|
隐藏小乌龟
|
turtle.ht():隐藏小乌龟
|
isvisible()
|
|
是否可见
|
turtle.isvisible():判断小乌龟是否可见,返回布尔值
|
外观
|
|||
shape()
|
|
设置小乌龟形状
|
turtle.shape('turtle'):设置小乌龟的形状为乌龟, arrow:箭头,turtle:龟,circle:圆,square:正方形,triangle:三角形,classic:经典
|
resizemode()
|
|
设置大小调整模式
|
turtle.resizemode('auto'):根据画笔出席值调整小乌龟的外观大小,“user”:根据拉伸因子和轮廓宽度值调整小乌龟的外观,两者是由shapesize()设置,“noresize”:默认不调整小乌龟的外观大小
|
shapesize()
|
turtlesize()
|
设置小乌龟形状大小,当且仅当大小调整模式设为“user”时起作用
|
先设置turtle.resizemode('user')再使用turtle.shapesize(3,5,4):设置小乌龟图形拉伸值,第一个值:3为垂直拉伸值,第二个值:5位水平拉伸值,第三个值:4为轮廓线的粗细值
|
shearfactor()
|
|
设置或返回当前的剪切因子,不改变小乌龟的朝向 |
turtle.shearfactor(1):设置小乌龟与x轴的正切值为1,拉伸小乌龟
|
settiltangle()
|
|
设置倾角,不改变小乌龟的朝向
|
turtle.settiltangle(45):旋转小乌龟形状指向与x轴成45°夹角
|
tiltangle()
|
|
设置或返回当前的倾角,不改变小乌龟的朝向
|
turtle.tiltangle():返回当前小乌龟的倾角
|
tilt()
|
|
设置小乌龟形状自其当前的倾角转动角度倾斜,不改变小乌龟的朝向
|
turtle.tilt(45):在当前倾角下转动45°(当前倾角为45°)
|
shapetransform()
|
|
设置或返回小乌龟形状的当前变形矩阵
|
turtle.shapetransform(4,-1,0,2):(没搞懂)
|
get_shapepoly()
|
|
返回以坐标值对元组表示的当前形状多边形
|
turtle.shapetransform(4,-1,0,2)
turtle.get_shapepoly():(没搞懂)
|
使用事件(还没理解透)
|
|||
onclick()
|
|
onclick(fun,btn=1,add=None):当鼠标点击小乌龟时,执行函数(fun为传入的函数),btn值(1为鼠标左键,2为鼠标中间键,3为鼠标右键),add为True则将添加一个新绑定
|
def trun(x,y):
right(90)
onclick(turn)
当鼠标点击小乌龟时,执行函数trun,向右旋转90°
|
onrelease()
|
|
onrelease(fun,btn=1,add=None):当鼠标点击小乌龟释放鼠标时,执行函数(fun为传入的函数),btn值(1为鼠标左键,2为鼠标中间键,3为鼠标右键),add为True则将添加一个新绑定
|
def trun(x,y):
right(90)
onrelease(turn)
当鼠标点击小乌龟释放鼠标时,执行函数trun,向右旋转90°
|
ondrag()
|
|
ondrag(fun,btn=1,add=None):当鼠标点击小乌龟释放鼠标时,执行函数(fun为传入的函数),btn值(1为鼠标左键,2为鼠标中间键,3为鼠标右键),add为True则将添加一个新绑定
|
turtle.ondrag(turtle.goto):点击并拖动小乌龟在画布上移动手绘线条 |
特殊小乌龟方法
|
|||
begin_poly()
|
|
开始记录多边形
|
turtle.home()
turtle.begin_poly()
turtle.fd(100)
turtle.left(20)
turtle.fd(30)
turtle.left(60)
turtle.fd(50)
turtle.end_poly()
p = turtle.get_poly()
screen.register_shape("myFavouriteShape", p)
|
end_poly()
|
|
结束记录多边形
|
|
get_poly()
|
|
获取多边形
|
|
clone()
|
|
克隆一个Turtle对象
|
a = turtle.Turtle()
b = a.clone():克隆一个Turtle对象
|
getturtle()
|
getpen()
|
获取小乌龟画笔
|
a = turtle.getturtle():获取一个Turtle对象 |
getscreen()
|
|
获取屏幕
|
a = turtle.getscreen():获取一个Screen对象 |
setundobuffer()
|
|
设置撤销缓冲区
|
turtle.setundobuffer(50):设置撤销缓冲区次数上限,最多只能撤销50次小乌龟的动作 |
undobufferentries()
|
|
返回撤销缓冲区条目数
|
turtle.undobufferentries():返回撤销缓冲区里剩下的条目数 |
窗口控制
|
|||
bgcolor()
|
|
设置背景颜色
|
screen.bgcolor('white'):设置画布背景颜色
|
bgpic()
|
|
设置背景图片
|
screen.bgpic('C:\\Users\\Archer\\Pictures\\Camera Roll\\图片.jpg'):设置背景图片
|
clearscreen() |
clear()
|
从中删除所有小乌龟的全部绘图。将已清空的TurtleScreen重置为初始状态:白色背景,无背景图片,无事件绑定并启用追踪
|
screen.clearscreen():清除所有小乌龟绘图,并重置状态
|
resetscreen()
|
reset()
|
重置
|
screen.resetscreen():重置所有小乌龟为初始状态,并清除所绘制的图形,但使用clone()克隆的Turtle对象所画的图形灭有
|
screensize()
|
|
设置屏幕大小
|
screen.screensize(800,1000,'white'):设置宽为800,高为1000,背景颜色为白色的窗口,有滚动条
|
setworldcoordinates()
|
|
screen.setworldcoordinates(llx,lly,urx,ury):llx-为画布左下角的x坐标,lly-为画布左下角的y坐标,urx-为画布右上角的x坐标, ury-为画布右上角的y坐标
|
screen.setworldcoordinates(-50,-7.5,50,7.5):(没搞懂怎么用)
|
动画控制
|
|||
delay()
|
|
延迟(毫秒):连续两次画布刷新的间隔时间
|
screen.delay(5):设置延迟值为5毫秒
|
tracer()
|
|
tracer(n,delay):追踪小乌龟的绘图,当n为0或为False时,禁用追踪,默认为1;delay为延迟(毫秒)
|
screen.tracer(8,25):没第8次屏幕刷新会执行,延迟25毫秒(还不太懂怎么用)
|
update()
|
|
更新
|
screen.update():执行一次TurtleScreen刷新。在禁用追踪时使用 |
使用屏幕事件
|
|||
listen()
|
|
监听
|
screen.listen():监听键盘的点击操作,与键盘点击事件一起用,没有监听,键盘操作无效果 |
onkeyrelease()
|
onkey()
|
当键盘按下并释放
|
def up():
turtle.fd(10)
screen.listen()
screen.onkey(up,'Up'):按下键盘并释放上方向键,执行up函数,前进10个单位
|
onkeypress()
|
|
当键盘按下
|
def up():
turtle.fd(10)
screen.listen()
screen.onkeypress(up,'Up'):按住键盘上方向键,一直执行up函数,就一直前进10个单位,松开键盘停止执行
|
onscreenclick()
|
onclick()
|
onclick(fun,btn=1,add=None):当鼠标点击画布屏幕时,执行函数(fun为传入的函数),btn值(1为鼠标左键,2为鼠标中间键,3为鼠标右键),add为True则将添加一个新绑定
|
def turn(x,y):
turtle.right(90)
screen.onclick(turn):当鼠标点击画布屏幕时执行turn函数
|
ontimer() |
|
screen.ontimer(fun,t=0):定时器,在达到t毫秒后,执行fun函数
|
def up():
turtle.fd(10)
screen.ontimer(up,1000):程序执行1秒后,执行up函数,前进10个单位
|
mainloop()
|
done()
|
主循环
|
screen.mainloop():开始事件循环,必须作为一个小乌龟绘图程序的结束语句,否则程序会被关闭
|
设置与特殊方法
|
|||
mode()
|
|
设置小乌龟的模式
"standard"模式:初始方向(朝右),逆时针,默认模式
"logo"模式:初始方向(朝上),顺时针
|
screen.mode('logo'):设置小乌龟模式为logo模式
|
colormode() |
|
screen.colormode(cmode):设置颜色模式,cmode值为1.0或255,构成颜色的RGB三元组数字必须在0-cmode范围之间,默认数值为1.0
|
screen.colormode(255):设置颜色模式为0-255之间,则可使用screen.bgcolor(255,255,255)
|
getcanvas()
|
|
获取画布对象
|
cv = screen.getcanvas():获取画布对象,没搞懂怎么用
|
getshapes()
|
|
获取所有小乌龟的形状信息
|
screen.getshapes():返回当前所有小乌龟的形状的列表
|
register_shape()
|
addshape()
|
添加一个gif格式的图片到图形列表中
|
screen.register_shape('C:\\Users\\Archer\\Pictures\\Camera Roll\\太极.gif')
print(screen.getshapes())
再通过turtle.shape('C:\\Users\\Archer\\Pictures\\Camera Roll\\太极.gif')设置小乌龟形状
|
turtles()
|
|
获取所有小乌龟的对象列表
|
screen.turtles():返回屏幕上所有小乌龟的对象列表
|
window_height()
|
|
获取窗口高度
|
screen.window_height():返回窗口高度
|
window_width()
|
|
获取窗口宽度
|
screen.window_width():返回窗口宽度
|
输入方法
|
|||
textinput()
|
|
screen.textinput(title,prompt):文本输入,title为窗口标题,prompt为提示输入信息
|
screen.textinput('新年问候','你好'):弹出一个对话框窗口用来输入一个字符串,输入后返回这个字符串,取消返回None
|
numinput()
|
|
screen.numinput(title,prompt,default,minval,maxval):数字输入,title为窗口标题,prompt为提示输入信息,default为默认值,minval为最小值,maxval为最大值
|
screen.numinput('调查问卷','请问你多少岁了',18,0,150):弹出一个对话框窗口用来输入一个数字,输入后返回这个数值,取消返回None
|
Screen专有方法
|
|||
bye()
|
|
退出
|
screen.bye():关闭绘图窗口 |
exitonclick()
|
|
当鼠标左键点击时退出窗口
|
screen.exitonclick():鼠标左键点击后关闭窗口
|
setup()
|
|
screen.setup(w,h,x,y):设置主窗口大小和位置,w为宽度(像素),如为浮点数,则表示屏幕占比,h为高度,x为初始位置距离屏幕左边多少像素,y为初始位置距离屏幕上边多少像素,没有设置xy默认居中
|
screen.setup(500,500,0,0):窗口大小为宽500像素,高为500像素,在屏幕左上角打开窗口
|
title()
|
|
设置窗口标题
|
screen.title('Welcome to the turtle zoo!'):设置窗口标题
|
Turtle模块基本方法和使用(画布)的更多相关文章
- #18 turtle模块
前言 这一节继续记录模块,本节将记录Python中一个非常重要的画图模块——turtle,Here we go! 一.turtle模块 turtle(海龟)模块是Python中强大的内置画图模块,可以 ...
- 绘图工具--turtle模块
turtle模块主要使用两个类,一个是TurtleScreen类,表示画布(窗口),用来展示画的位置:一个是Turtle类,用来充当画笔,用来画. 两个类的方法也以同名的函数的形式存在,所以可以以面向 ...
- Python turtle 模块可以编写游戏,是真的吗?
1. 前言 turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI 程序. 本文使用 tu ...
- python绘制图形(Turtle模块)
用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...
- Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解
1 标准输出 python3利用 print() 来实现标准输出 def print(self, *args, sep=' ', end='\n', file=None): # known speci ...
- 海龟绘图turtle模块的使用
在本章中,我们将编写简短的.简单的程序来创建漂亮的.复杂的视觉效果.为了做到这一点,我们可以使用海龟作图软件.在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一 ...
- Python——用turtle模块画海龟的第一步
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- thinkphp访问不存在的模块或者方法跳转到404页面
使用的thinkphp 版本是3.2.0, 在config.php中配置 404地址,即可: 'TMPL_EXCEPTION_FILE' => './Application/Home/View/ ...
- ThinkPHP3.2判断手机端访问并设置默认访问模块的方法
ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法 目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.p ...
随机推荐
- 编译安装nginx提示./configure: error: C compiler cc is not found
1 编译安装nginx提示如下 ./configure: error: C compiler cc is not found 2 解决办法 yum -y install gcc gcc-c++ aut ...
- C#的多线程简洁笔记
New Thread(()=>{}).Start(); //匿名线程 Thread Ntd = new Thread(T1); Ntd.IsBackground = true; //后台线程 N ...
- Java日志介绍(3)-Logback
Logback 继承自Log4j,它建立在有十年工业经验的日志系统之上.它比其它所有的日志系统更快并且更小,包含了许多独特并且有用的特性. 1.配置 1.1.加载配置 Logback能够在初始化期间自 ...
- 使用jquery封装的动画脚本(无动画、css3动画、js动画)
自己封装好的showhide.js 包含无动画.css3动画.js动画 包括:fade(淡入淡出) slideUpDown(上下滑动) slideLeftRight(左右滑动) fadeSlid ...
- JS淘宝小广告
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- docker笔记(2)
docker笔记(2) 常用命令和操作 1. 镜像操作 操作 命令 说明 检索 docker search 关键字 eg:docker search redis 我们经常去docker hub上检索镜 ...
- 小白的linux笔记3:对外联通——开通ssh和ftp和smb共享
1.SSH的开通.https://www.cnblogs.com/DiDiao-Liang/articles/8283686.html 安装:yum install sshd或yum install ...
- 多字节与Unicode
编码知识 一.Unicode与多字节(ANSI ) (1)Windows中,Unicode也称为宽字节,多字节也称为窄字节; VS中默认使用Unicode编码,在项目属性>>配置属性> ...
- MongoDB批量操作时字段为null时没有入库
今天在Java后端批量插入数据至MongoDB后,在MongoDB数据库中发现某个字段没有成功入库,一查看代码,在List的元素对象中是有这个字段的,不知为啥就没有入库了. (1)调试 遇到此情况,赶 ...
- Java JDK 1.8 安装及配置
1.下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 要注册,注 ...