大家好,今天我们要分享,一个有趣的事情 一个有趣的事情,一起探索吧!
大家好,小编来为大家解答以下问题,用pythonturtle画简单的图案,python中用turtle画一个圆形,现在让我们一起来看看吧!
前言
本文参考:Python库官方文档 本文例子摘抄自Python库官方文档,为了方便讲解,个人进行了修改,并且相关函数说明不完全参照文档,在结果处贴出了执行结果,不方便用jpg等图片作为展示的用了gif格式图片进行展示结果高中python语言常用语句,高中python例题和答案。
如有错误欢迎指出,之后会出关于turtle的实现的博文,欢迎关注!
由于网上其它文档的形式不符合我个人习惯,在查阅资料时总感觉不是很习惯,就想着顺手写一篇博文作为一个参考示例学python之前需要学c语言吗。
在了解 turtle 时发现国内外一些青少年教育所使用的一些教学产品跟 turtle 类似;turtle 如果在国内作为一个青少年教学产品还是非常好的。
简介
在 turtle 官方文档中介绍说到 “Turtle graphics is a popular way for introducing programming to kids.” 它是一个向青少年作为一个普及启蒙类编程的好方式;对于我个人来说,英文并不是我们的第一语言,一些学生的英文水平也不是过于优秀,在学习编程的时候会导致一些困难,虽然这些困难并不是决定学不学的会的主要原因,但也起到了一定的阻碍作用;如果在国内用 turtle 进行一个教学的话,用深圳的学生举例,可以用作小学5年级(包括五年级)以上学生的教学;这对于他们来说,turtle 带来的是其它教学产品所不能带来“专业编程”的实践体验;这可能就是模拟环境和真实环境的区别吧。(当然,专业编程从业者使用 turtle 也肯定是没问题,所以我之前才说,这个python库所带来的体验是比较接近于“专业”的。)
turble 是由Wally Feurzig 和 Seymour Papert 在1966年进行开发的。
在 turtle 的基本开发中是围绕着一个2D平面进行开发的,其中的主角是一个小箭头;这个小箭头就像一个小海龟,通过编程,命令小海龟在屏幕上进行移动绘制,从而画出一条条线段。通过这些线段可以组成各式各样的图案,如果你的绘画技术不怎么好,也许使用 turtle 进行绘制会有意想不到的惊喜!
在官方文档的说明中,是以交互式的方式进行的说明,在本篇文章中,不以交互式方式进行说明;由于考虑到编程的普及这几年呈现低龄化,本篇将会尽量的详细说明,但一些深入的知识将不会讲解(之后再写一篇实现解析),一般来说简单实用只需要了解使用方式即可;敬请谅解。假设你是个从业经验的开发者,想了解实现过程,那么敬请期待我的下一篇文章。
注意,因为使用 turtle 的python是需要Tk支持的版本。Tkinter是标准的Python接口Tk的GUI工具包,可以使用命令 python -m tkinter
检查是否安装。如果出现一个简单的窗口即为已安装。Tk和tkinter在大多数Unix平台以及Windows系统上都可用。点击查看官方文档具体Tk的详情。
基本编程说明
以下编程说明摘抄于官方文档(在本篇文档中初学者无需过多了解)。
在编程中,基本上使用有两个+两个类:
TurtleScreen类将会绘制出一个2D平面,turtle 相当于绘画笔。。 它的构造函数需要一个Tkinter.Canvas或一个ScrolledCanvas作为参数。 当应用程序使用turtle时应该使用它。 Screen()函数返回一个TurtleScreen子类的单例。 当turtle被用作单独的绘制工具使,就应该使用这个函数。RawTurtle 别名是 RawPen,定义了在 TurtleScreen 上绘制的Turtle对象。它的构造函数需要Canvas,可用ScrolledCanvas或TurtleScreen作为参数,上一点已经提到 TurtleScreen 将会绘制出一个2D平面给予 turtle 绘制,因此RawTurtle对象知道在哪里绘制。 派生自RawTurtle的是子类Turtle(别名:),该子类使用自动创建Pen的“ Screen实例” (如果尚未存在)。
RawTurtle/Turtle的所有方法也作为函数存在,即面向过程的接口的一部分。
过程接口提供了从类Screen和Turtle的方法派生的函数。它们与相应的方法同名。每当调用从screen方法派生的函数时,都会自动创建screen对象。每当调用从turtle方法派生的任何函数时,都会自动创建一个(未命名的)turtle对象。
函数列表
在 Turtle 中,Turtle 方法分别为 turtle 运动、笔控制、turtle 状态;TurtleScreen 方法分为窗口控制、动画控制、屏幕事件、特殊方法、输入方法、面对屏幕的特殊方法。
turtle 运动一共有如下函数:绘制及移动:
forward() | fd()backward() | bk() | back()right() | rt()left() | lt()goto() | setpos() | setposition()setx()sety()setheading() | seth()home()circle()dot()stamp()clearstamp()clearstamps()undo()speed()
取得 turtle 状态:
position() | pos()towards()xcor()ycor()heading()distance()
设置和测量:
degrees()radians()
笔控制->绘制状态:
pendown() | pd() | down()penup() | pu() | up()pensize() | width()pen()isdown()
颜色控制:
color()pencolor()fillcolor()
填满:
filling()begin_fill()end_fill()
更多绘制控制:
reset()clear()write()
笔状态->可见度:
showturtle() | st()hideturtle() | ht()isvisible()
外观:
shape()resizemode()shapesize() | turtlesize()shearfactor()settiltangle()tiltangle()tilt()shapetransform()get_shapepoly() 未补全
事件:
onclick()onrelease()ondrag()
一些 turtle 的特殊方法:
begin_poly()
end_poly()
get_poly()
clone()
getturtle() |
getpen()
getscreen()
setundobuffer()
undobufferentries()
屏幕方法如下:窗口控制:
bgcolor()bgpic()clear() | clearscreen()reset() | resetscreen()screensize()setworldcoordinates()
动画控制:
delay()tracer()update()
屏幕事件:
listen()onkey() | onkeyrelease()onkeypress() 未补全onclick() | onscreenclick()ontimer()mainloop() | done() 未补全
设置和特殊方法:
mode() 未补全colormode() 未补全getcanvas()getshapes()register_shape() | addshape() 未补全turtles()window_height()window_width()
输入方法:
textinput()numinput()
面对屏幕的特殊方法:
bye()exitonclick() 未补全setup()title()
函数使用与示例
turtle 运动部分
forward() | fd()
使用语法:turtle.forward(距离)
(距离)
参数说明: 距离 一个数字 (整数 或者 浮点) (注:这个距离的单位是像素) 代码示例:
from turtle import *
forward(25)
input()
代码释义:from turtle import *
: 在安装好turtle后,使用from引入turtle,导入其中所有的模块,所以我使用了import *;forward(25)
:由于我引入了 turtle 所以不再使用 turtle 进行调用,直接使用方法即可;使用forward向一个方向画一根线,这根线默认方向向右,朝着箭头所指的方向前进,并且是在行动中进行画线,方法传入的参数是你想绘制线段的长度,或者说是你想这只 turtle 想要行迹的距离,填入数字后,小 turtle 会向这个方向行动。input()
:假设不适用input将会导致窗口一闪而过,使用input可以使你查看运行效果;当然不排除有些IDE或者编辑器默认有此功能。 运行结果如下: 如果以上示例并不能很好的突出线段的距离,可以加大距离长度;现在我将长度改为300,代码更改为:
from turtle import *
forward(300)
input()
运行效果如下:
backward()
使用语法:(距离)
(距离)
ward(距离)
传入参数: 距离 数字 把乌龟向后移动一段距离,与乌龟前进的方向相反。不能改变乌龟的方向。 使用示例:
from turtle import *
forward(300)
backward(400)
input()
代码释义:backward(400)
:使用backward返回turtle的行动,为了突出对比,使用了大于forward长度的距离参数。当然也可以使用bk和back方法,效果都是一样的:
from turtle import *
forward(300)
bk(400)
input()
运行结果:
right()/left()
使用语法:turtle.right(angle)
(angle)
参数: 角度 数字 (整数或者是浮点数) 使用right方法可以使 turtle 向右旋转角度,但要注意只是旋转角度方向,并不会前行。角度的旋转是以顺时针旋转。可以用正负号表示转向方向。不添加符号表示默认方式顺时针旋转,添加“-”号为逆时针旋转。 使用示例(为了更好的做比较,我在forward前添加了right转向):
from turtle import *
right(30)
forward(300)
input()
right(30):
顺时针转向30° 运行结果: 逆时针转向:
from turtle import *
right(-30)
forward(300)
input()
right(-30):
逆时针转向30° 运行结果: 使用right是向右转,使用left是向左转,在此不再赘述。
goto()
(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
参数: x :一个数或一个坐标 y :一个数或者为空 在turtle 绘制的区域,是一个2D平面,这个平面由坐标定位,在turtle中使用pos表示坐标,初始位置为(0,0),使用goto传入坐标将会跳转至该坐标点并且绘制; 代码示例:
from turtle import *
goto(30,30)
input()
goto(30,30)
:跳转到坐标点x为30,y为30处。 运行结果: 在此注意,小turtle的方向并没有改变。
setx()/sety()
(x)
参数: x:一个数字 (整数或者浮点) 设置x坐标的值,y坐标不变(y)
参数: y :一个数字(整数或者浮点) 设置y坐标的值,x坐标不变 setx代码示例:
from turtle import *
setx(10)
input()
setx(10)
:设置x坐标到达10位置,sety不再赘述
setheading() | seth()
eading(to_angle)
(to_angle)
参数:
to_angle:一个整数(整数或者浮点)
使用 setheading 将会把turtle初始状态设置为0°,类似于一个量角器,初始状态下turtle是个垂直于一条平面的线,并没有角度,所以为0,如果使用 setheading 传入参数 45 后,将会方向指向相对于初始状态的45°。 代码示例:
from turtle import *
setheading(45)
input()
运行效果:
seth 方法类似不在赘述。
home()
()
将turtle移动到原点坐标(0,0)-并将其航向设置为起始方向。
from turtle import *
forward(80)
home()
input()
home()
:将turtle至于初始坐标。 运行结果:
circle()
turtle.circle(radius, extent=None, steps=None)
参数:
radius :数字 半径extent : 数字 范围 可以为空steps : 整数 可以为空
使用circle可以画出一个圆,或者弧度,第一个参数为半径,第二个参数可以控制绘制的范围多少,如果输入90,那么只绘制到90°位置;steps为阶梯,圆的边其实是锯齿状的,相当于像素点的感觉,一下代码将会作出对比,方便理解。 画出一个圆代码示例:
from turtle import *
circle(120)
input()
代码释义:circle(120)
:半径为120的圆 运行结果: 加上第二个参数extent 进行绘制:
from turtle import *
circle(120,180)
input()
代码释义:circle(120,180)
:直径120的一个扇形。 加入第三个参数steps代码示例:
from turtle import *
circle(120,180,1)
input()
代码释义:circle(120,180,1)
:阶梯为1的扇形。
变成一条直线了,我们给改steps为2,circle(120,180,2)
运行结果:
变成一个折线了,我们给改steps为20,circle(120,180,20)
运行结果: 恢复正常,这就是steps阶梯。
dot()
(size=None, *color)
参数:
size :大于0的整数color :颜色标识 用一个指定颜色绘制一个尺寸为size的原点。
代码示例:
from turtle import *
dot(20,"blue")
input()
运行结果:
stamp()
amp()
复制一个turtle。
from turtle import *
stamp()
color("blue")
goto(100,0)
input()
代码释义:stamp()
:复制一个自己;color("blue")
:设置当前的自己为蓝色;goto(100,0)
:移动到左边x为100,y为0处。 结果如下: 其中黑色就是我们复制的turtle②号,为了区别颜色一个为蓝一个就是初始颜色了。
clearstamp()
turtle.clearstamp(stampid)
参数:
stampid :使用 stamp 复制一个自己后将会返回一个 stamp的id值,传入id值即可删除复制的对象。
代码示例:
from turtle import *
turtle2=stamp()
color("blue")
goto(100,0)
clearstamp(turtle2)
input()
代码释义:turtle2=stamp()
:接收返回的stampidclearstamp(turtle2)
:删除复制的turtle 运行结果:
clearstamps()
turtle.clearstamps(n=None)
参数: 一个整数或者为空 删除复制的turtle的全部或前/后n个。如果n为空,则删除所有turtle;如果n>0,则删除前n个;如果n<0,则删除后n个。 代码示例:
from turtle import *
import time
for i in range(8):
stamp();
fd(10)
time.sleep(1)
clearstamps(2)
time.sleep(1)
clearstamps(-2)
time.sleep(1)
clearstamps()
input()
代码释义:for i in range(8)
:循环创建8个turtle,每个走10步;注意,复制的时候是已最主要的turtle为主,并且复制的时候会得到当前位置的信息,会在作为主体的turtle位置出现。time.sleep(1)
:为了能够更好的看见效果所加的暂停代码。clearstamps(2)
:删除前2个turtleclearstamps(-2)
:删除后2个turtleclearstamps()
:删除全部复制的turtle
运行结果:
undo()
()
撤销上一个turble的操作。 代码示例:
from turtle import *
import time
fd(100)
left(160)
fd(100)
time.sleep(1)
undo()
input()
代码释义:undo()
:撤回上一步 运行结果:
speed()
turtle.speed(speed=None)
参数:
speed:0-10范围内的整数。
设置turtle的运动速度。超过范围则为0。官方文档给了一个速度值快慢的参考,并且可以用标识当作参数传入,如下:
“fastest”: 0“fast”: 10“normal”: 6“slow”: 3“slowest”: 1
代码示例:
from turtle import *
import time
speed('fastest')#或者使用0
circle(100)
input()
代码释义:speed('fastest')
:使用最快的速度,也可以用0代替 运行结果(一下举例了2个不同值的结果):
笔控制
绘制状态
penup() | pu() | up()
up()
()
()
移动时不绘制。 代码示例:
from turtle import *
import time
penup()
speed('normal')#也可以使用0代替
circle(100)
input()
代码释义:penup()
:使用后以下移动时不会进行绘制。 运行结果:
pendown() | pd() | down()
down()
()
()
移动时绘制。 代码示例:
from turtle import *
import time
penup()
circle(100)
pendown()
circle(100)
input()
代码释义:pendown()
:接着上一小点的代码,走一圈后不绘制,最后又画一圈绘制。 运行结果:
pensize() | width()
size(width=None)
turtle.width(width=None)
参数:
width:线条宽度,可以为空
设置线条宽度,或将其返回。 代码示例:
from turtle import *
import time
pensize(10)
circle(100)
input()
代码释义:pensize(10)
:设置代码的宽度,使用width方法结果相同 运行结果:
pen()
(pen=None, **pendict)
参数:
pen – 有特定标识值pendict :有多个关键字参数
设置pen的相关方法。 以下为官方给出的设置值:
“shown”: True/False“pendown”: True/False“pencolor”: color-string or color-tuple“fillcolor”: color-string or color-tuple“pensize”: positive number“speed”: number in range 0…10“resizemode”: “auto” or “user” or “noresize”“stretchfactor”: (positive number, positive number)“outline”: positive number“tilt”: number
可在一条语句中设置多个属性。 代码示例:
from turtle import *
import time
pen(speed=10, pencolor="red", pensize=10)
circle(100)
input()
代码释义:pen(speed=10, pencolor="red", pensize=10)
:设置pen(笔)的绘制速度为10,颜色为红色,线条大小为10. 运行结果:
isdown()
turtle.isdown()
判断比是否抬起或放下,换句话解释就是判断是否移动时绘制,如果绘制返回 True 否则返回 False。 代码示例:
from turtle import *
import time
pen(speed=10, pencolor="red", pensize=10)
circle(100)
print(isdown())
penup()
pen(speed=10, pencolor="red", pensize=10)
circle(100)
print(isdown())
input()
代码释义:print(isdown())
:在默认情况下是绘制的,输出笔是否放下,输出Turepenup()
:使用penup()抬起笔,移动时不会只,此时输出False 运行结果:
颜色控制
pencolor()
color(*args)
返回当前线条设置的颜色或设置线条的颜色。 pencolor可传参与不传参:
pencolor():不传参返回当前颜色的设置pencolor(colorstring):可以传入字符串设置颜色值pencolor((r, g, b)):传入一个元组值进行设置pencolor(r, g, b):直接赋予r、g、b值
代码示例:
from turtle import *
import time
pencolor("brown")
circle(100)
input()
代码释义:pencolor("brown")
:设置颜色后画圆 也可以使用rgb传入颜色:
from turtle import *
import time
tup = (0.2, 0.8, 0.55)
pencolor(tup)
circle(100)
input()
运行结果:
fillcolor()
turtle.fillcolor(*args)
返回设置的颜色或设置turtle的颜色。 fillcolor可传参与不传参:
fillcolor():不传参返回当前颜色的设置fillcolor(colorstring):可以传入字符串设置颜色值fillcolor((r, g, b)):传入一个元组值进行设置fillcolor(r, g, b):直接赋予r、g、b值
color()
turtle.color(*args)
返回设置笔的颜色或设置填充颜色。 color可传参与不传参:
color():不传参返回当前颜色的设置color(colorstring):可以传入字符串设置颜色值color(colorstring), color((r,g,b)):传入2个rgb值一个设置turtle颜色一个设置绘制线条颜色color(colorstring1, colorstring2):传入2个字符串值一个设置turtle颜色一个设置绘制线条颜色
代码示例:
from turtle import *
import time
color("red", "blue")
circle(100)
input()
代码释义:color("red", "blue")
:设置线条为红色,turtle为蓝色 运行结果:
begin_fill()/end_fill()
turtle.begin_fill()
开始填充颜色。turtle.end_fill()
结束填充颜色。 代码示例:
from turtle import *
import time
color("black", "red")
begin_fill()
circle(100)
end_fill()
input()
代码释义:begin_fill()
:开始填充,这个需要放在图形绘制之前。end_fill()
:结束绘制,一定要加不然不会进行填充。 运行结果:
更多绘制控制
reset()
turtle.reset()
从屏幕上删除turtle,并将海龟重新居中,充值所有值。 代码示例:
from turtle import *
import time
fd(100)
left(30)
fd(100)
time.sleep(1)
reset()
input()
代码释义:time.sleep(1)
:停止一秒对比效果reset()
:重置 运行结果:
clear()
turtle.clear()
清除屏幕绘制线条。并不影响turtle位置。 代码示例:
from turtle import *
import time
fd(100)
left(30)
fd(100)
time.sleep(1)
clear()
input()
代码释义:clear()
:清除以上绘制效果 运行结果:
write()
turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))
参数:
arg – 你想输出到屏幕的值move – True/False 输出值时是否移动 align – 对齐方式 font – 字体样式类别
输出值到屏幕上,可以设置字体以及对齐方式。 代码示例:
from turtle import *
import time
fd(100)
left(30)
fd(100)
time.sleep(1)
write("你好呀", False, align="center")
input()
代码释义:write("你好呀", False, align="center")
:显示你好呀,但是在显示值的时候不会移动,对其方式为居中对齐。 运行结果: 把write("你好呀", False, align="center")
改为write("你好呀", True, align="center")
,使输出值时turtle移动。
Turtle 状态
hideturtle()|showturtle()|isvisible()
turtle.hideturtle()
()
设置turtle是否可见。 代码示例:
from turtle import *
import time
hideturtle()
input()
代码释义:hideturtle()
:使turtle不可见 运行结果:
showturtle()
turtle.showturtle()
()
使turtle可见。 代码示例:
from turtle import *
import time
hideturtle()
time.sleep(1)
showturtle()
input()
代码释义:showturtle()
:设置turtle可见。 运行结果:
turtle.isvisible()
判断turtle是否显示。 代码示例:
from turtle import *
import time
hideturtle()
print(isvisible())
time.sleep(1)
showturtle()
print(isvisible())
input()
代码释义:print(isvisible())
:读取状态,显示为True否则为False 运行结果:
外观
shape()
turtle.shape(name=None)
参数:
name:有效的形状名称 将turtle shape设置为具有给定名称的形状,如果未指定名称,则返回当前形状的名称。名称为的形状必须存在于TurtleScreen的形状字典中。默认有以下多边形形状:“箭头”、“乌龟”、“圆”、“正方形”、“三角形”、“经典”。设置成什么turtle就会变成什么形状。
代码示例:
from turtle import *
import time
shape("turtle")
input()
代码释义:shape("turtle")
:将turtle设置成乌龟形状 运行结果:
shapesize()
turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)
参数:
stretch_wid:y轴拉伸stretch_len:x轴拉伸outline:边缘拉伸
可以设置turtle的拉升。 代码示例:
from turtle import *
import time
shapesize(15, 15, 112)
fd(100)
input()
代码释义:shapesize(15, 15, 112)
:x轴拉伸15,y轴拉伸15,边缘拉伸112 运行结果:
tilt()
(angle)
参数:
angle:角度
改变箭头方向,但不改变turtle方向。 代码示例:
from turtle import *
import time
tilt(30)
fd(111)
input()
代码释义:tilt(30)
:turtle旋转角度,但不改变行动方向。 运行结果:
事件
onclick()
turtle.onclick(fun, btn=1, add=None)
参数:
fun :响应的函数btn:点击的数量可为空add: True或False 添加新绑定,否则将替换以前的绑定 为turtle绑定一个点击事件。
代码示例:
from turtle import *
import time
def turn(x, y):
left(180)
onclick(turn)
input()
代码释义:onclick(turn)
:每次点击调用turn函数,转动180°。 运行结果:
onrelease()
turtle.onrelease(fun, btn=1, add=None)
参数:
fun :响应的函数btn:点击的数量可为空add: True或False 添加新绑定,否则将替换以前的绑定 鼠标点击释放时响应某函数。
代码示例:
from turtle import *
import time
def turn(x, y):
left(180)
def turn_(x, y):
left(-180)
onclick(turn)
onrelease(turn_)
input()
代码释义:onrelease(turn_)
:鼠标释放后执行turn_函数 运行结果:
ondrag()
turtle.ondrag(fun, btn=1, add=None)
参数:
fun :响应的函数btn:点击的数量可为空add: True或False 添加新绑定,否则将替换以前的绑定
拖拽时响应。 代码示例:
from turtle import *
import time
ondrag(goto)
input()
代码释义:ondrag(goto)
:拖动时执行goto 运行结果:
一些特别的Turtle方法
clone()
turtle.clone()
克隆并返回具有相同属性的turtle。 代码示例:
from turtle import *
import time
mick = Turtle()
joe = mick.clone()
(111,0)
(0,111)
input()
代码释义:mick = Turtle()
:创建一个turtle实例joe = mick.clone()
:克隆这个mick实例(111,0)
:mick这个turtle往x为111y为0的坐标移动(0,111)
:joe这个turtle往y为111x为0的坐标移动 运行结果:
getturtle()|getpen()
turtle.getturtle()
turtle.getpen()
返回当前turtle的实例 代码示例:
from turtle import *
import time
pet = getturtle()
(50)
input()
代码释义:pet = getturtle()
:得到当前turtle的对象 运行结果:
setundobuffer()
turtle.setundobuffer(size)
参数:
size:大小 设置缓冲区大小。使用undo撤销缓冲区turtle的动作数,如果size为None则禁用撤销。
代码示例:
from turtle import *
import time
setundobuffer(42)
input()
undobufferentries()
返回缓冲区存储动作数数量。 代码示例:
from turtle import *
import time
fd(111)
left(10)
fd(11)
print(undobufferentries())
input()
代码释义:print(undobufferentries())
:输出缓冲区中的动作数 运行结果:
窗口控制
bgcolor()
turtle.bgcolor(*args)
参数:
args:传入颜色代码或者标识猛,不传则为获取当前背景色 设置颜色或获取当前颜色。
代码示例:
from turtle import *
bgcolor("orange")
goto(10,0)
input()
代码释义:bgcolor("orange")
:设置背景色为橘色 运行结果:
bgpic()
turtle.bgpic(picname=None)
参数:
picname:不传则返回背景图片文件名,传入参数则设置背景图片,可传入文件名或路径
代码示例:
from turtle import *
bgpic(r"C:\Users\Administrator\Desktop\")
goto(10,0)
input()
代码释义:bgpic(r"C:\Users\Administrator\Desktop\")
:设置背景图 运行结果:
clear()|clearscreen()
turtle.clear()
turtle.clearscreen()
屏幕清屏,但不移动turtle位置。 代码示例:
from turtle import *
goto(100,0)
clear()
input()
代码释义:clear()
:清除绘制内容 运行效果:
clearscreen()
清楚包括turtle在内的所有内容。 运行结果:
reset()|resetscreen()
turtle.reset()
turtle.resetscreen()
重置屏幕上turtle为初始状态。 代码示例:
from turtle import *
import time
goto(100,0)
time.sleep(2)
resetscreen()
input()
代码释义:resetscreen()
:重置turtle 运行结果:
screensize()
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
canvwidth:画布宽 canvheight:画布长 调整画布大小,使用滚动条查看超出可视窗体的内容。 代码示例:
from turtle import *
import time
screensize(2000,1500)
goto(1000,0)
代码释义:screensize(2000,1500)
:调整画布宽为2000,长为1500 运行结果:setworlcoordinates()
turtle.setworldcoordinates(llx, lly, urx, ury)
参数:
llx:左下角xlly:左下角yurx:右上角xury:右下角y
通过左下角和右下角的xy自定义坐标系。 代码示例:
from turtle import *
setworldcoordinates(-10,-7.5,10,7.5)
for _ in range(72):
left(10)
for _ in range(4):
left(90); fd(5)
input()
代码释义:setworldcoordinates(-10,-7.5,10,7.5)
:自定义个小坐标系fd(5)
:在正常坐标系中绘制5个像素的距离过于小,自定义坐标系后,5个单位对比整个坐标系已经足够。 运行结果:
动画控制
delay()
turtle.delay(delay=None)
参数:
delay:正整数
以毫秒为单位设置或返回绘图延迟。绘图延迟越长,动画越慢。 代码示例:
from turtle import *
delay(100)
fd(200)
input()
代码释义:delay(100)
:定义延时 运行结果:tracer()
turtle.tracer(n=None, delay=None)
参数
n:每n次屏幕更新delay:延时
打开/关闭turtle动画并为更新图形设置延迟。如果给定n,则仅真正执行第n次定期屏幕更新,可用于加速复杂图形的绘制。 代码示例:
from turtle import *
tracer(100, 1)
dist = 2
for i in range(200):
fd(dist)
rt(90)
dist += 2
input()
代码释义:tracer(100, 1)
:100次进行一次刷新屏幕 运行结果: 瞬间出现。 改为每1次刷新屏幕:tracer(100, 1)
屏幕事件
listen()|onkey()|onkeyrelease()
turtle.listen()
turtle.onkey(fun, key)
参数:
fun:执行的函数
key:响应事件
listen开启监听,onkey响应事件。 代码示例:
from turtle import *
def f():
fd(50)
lt(60)
listen()
onkey(f, "Up")
input()
代码释义:listen()
:开启监听事件onkey(f, "Up"):
监听到键盘↑键按下,执行f函数 运行结果:
ontimer()
turtle.ontimer(fun, t=0)
参数:
fun:函数t:时间 定时t后调用fun。
代码示例:
from turtle import *
def f():
fd(200)
left(110)
ontimer(f,1000)
input()
代码释义:ontimer(f,1000)
:1秒后调用f函数 运行结果:
输入方法
textinput()
turtle.textinput(title, prompt)
. 参数:
title:对话框标题prompt:描述输入文本
弹出一个用于输入字符串的对话框窗口。参数title是对话框窗口的标题,propmt是一个主要描述要输入哪些信息的文本。返回字符串输入。如果对话框被取消,则返回空。 代码示例:
from turtle import *
textinput("turtle", "你好!")
input()
代码释义:textinput("turtle", "你好!")
:文本输入 运行结果:
numinput()
turtle.numinput(title, prompt, default=None, minval=None, maxval=None)
参数:
title:标题prompt:描述minval:最小值maxval:最大值default:默认值
弹出一个输入数字的对话框。title是对话框窗口的标题,prompt是一个主要描述要输入哪些数字信息的文本。默认值:默认值,最小值:输入的最小值,最大值:输入的最大值输入的数字必须在最小值的范围内。。如果这些是给定的,则为maxval。否则,将发出提示,对话框将保持打开以进行更正。返回数字输入。如果对话框被取消,则返回“无”。 代码示例:
from turtle import *
numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)
input()
代码释义:numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)
:接收一个最小值10,最大值10000的数字,标题为Poker,提示为Your stakes,默认值为1000。 运行结果:
设置以及特殊方法
window_height()|window_width()
获取屏幕宽高 代码示例:
from turtle import *
print(window_height(),window_width())
input()
运行结果:
bye()|title()
()
窗口关闭。
from turtle import *
print(window_height(),window_width())
input()
bye()
input()
title(context)
context为要显示的文本,使用title设置标题。
setup ()
turtle.setup(width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"])
参数:
width:窗口宽height:窗口高startx:出现位置的x坐标starty:出现位置的y坐标
代码示例:
from turtle import *
setup (width=200, height=200, startx=600, starty=400)
input()
运行结果:
欢迎点赞、收藏、关注; 如有错误可在评论区指出,谢谢!
原文地址1:https://blog.csdn.net/2301_81337765/article/details/136289645
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099