本站消息

  出租广告位,需要合作请联系站长

  今日名言-想象你自己对困难作出的反应,不是逃避或绕开它们,而是面对它们,同它们打交道,以一种进取的和明智的方式同它们奋斗 。——马克斯威尔·马尔兹

  今日名言-用谅解、宽恕的目光和心理看人、待人。人就会觉得葱笼的世界里,春意盎然,到处充满温暖。——蔡文甫


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

最全的Python海龟绘图总结

发布于2021-07-25 06:35     阅读(851)     评论(0)     点赞(20)     收藏(0)


命令及功能说明表

功能简称命令参数说明功能说明
前进forward(distance)
fd(distance)
distance:整数或浮点数使海龟沿着当前指向的方向前进 distance 指定的距离
后退back(distance)
bk(distance)
backward(distance)
distance:整数或浮点数使海龟后退 distance 指定的距离,但是不改变海龟的原来的朝向
右转right(angle)
rt(angle)
angle:整数或浮点数使海龟右转 angle 个单位,单位默认为角度
左转left(angle)
lt(angle)
angle:整数或浮点数使海龟左转 angle 个单位,单位默认为角度
移动到坐标goto(x, y)
setpos(x, y)
setposition(x, y)
x:整数或浮点数
y:整数或浮点数
使海龟移动到绝对坐标(x, y),移动后不改变海龟的朝向
移动到坐标goto(position)
setpos(position)
setposition(position)
position:一个数值对或向量使海龟移动到绝对坐标 position,移动后不改变海龟的朝向
沿x轴移动setx(x)x:整数或浮点数纵坐标保持不变,使海龟移动到横坐标为 x 的位置上
沿y轴移动sety(y)y:整数或浮点数横坐标保持不变,使海龟移动到纵坐标为 y 的位置上
海龟朝向setheading(angle)
seth(angle)
angle:整数或浮点数根据当前模式,设置海龟的朝向为 angle,标准模式 (0 - 东,90 - 北,180 - 西,270 - 南)、logo 模式(0 - 北,90 - 东,180 - 南,270 - 西)
回起点home()使海龟移动到(0,0),并设置朝向为初始朝向
圆形circle(radius)radius:整数或浮点数绘制以 radius 为半径的圆,圆心在海龟左边 radius 个单位
圆弧circle(radius, extent)radius:整数或浮点数
extent:整数或浮点数
绘制以 radius 为半径的圆,圆心在海龟左边 radius 个单位,extent 为一个夹角,以当前画笔位置为一个端点绘制圆弧(如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向),海龟的朝向会依据 extent 的值而改变
内切正多边形circle(radius, extent, steps)radius:整数或浮点数
extent:整数或浮点数
steps:整数或浮点数
圆是以其内切正多边形来近似表示的,边的数量由 steps 指定。此方法也可用来绘制正多边形
绘点dot()绘制一个直径为1的圆点
绘点dot(size)size:一个整数 >= 1绘制一个直径为 size 的圆点
绘点dot(size, color)size:一个整数 >= 1
color:颜色字符串或者颜色数值元组
绘制一个直径为 size,颜色为 color 的圆点
绘制海龟形状stamp()在当前位置印制一个海龟形状,并返回该海龟形状印章的 stamp_id
删除指定的海龟形状clearstamp(stampid)stampid:整数,必须是之前调用 stamp() 的返回值删除指定 stampid 的海龟形状印章
删除多个海龟形状clearstamps(n)n:一个整数删除前/后 n 个海龟印章。如果 n > 0 则删除前 n 个印章, n < 0 则删除后 n 个印章
删除全部海龟形状clearstamps()删除全部海龟印章
撤消上一步undo()撤消最近的一个 (或多个) 海龟动作
设置绘制速度speed(speed)speed:0~10 范围内的整数或速度字符串设置绘制速度,如果 speed 大于 10 或小于 0.5 则速度设为 0,即无动画效果。速度字符串与速度值对应关系(“fastest”: 0 最快;“fast”: 10 快;“normal”: 6 正常;“slow”: 3 慢;“slowest”: 1 最慢)
查询绘制速度speed()返回当前海龟移动速度
查询当前位置position()
pos()
返回海龟当前的坐标 (x,y)
求夹角towards(x)x:数值对/矢量/一个海龟实例返回从海龟当前位置到由数值对或矢量或另一海龟所确定位置的连线的夹角,数值依赖于海龟的初始朝向
求夹角towards(x, y)x:整数或浮点数
y:整数或浮点数
返回从海龟当前位置到由(x,y)所确定位置的连线的夹角,数值依赖于海龟的初始朝向
获取当前位置x坐标xcor()返回当前海龟位置的 x 坐标
获取当前位置y坐标ycor()返回当前海龟位置的 y 坐标
获取当前海龟的朝向heading()返回海龟当前的朝向
求距离distance(x)x:数值对/矢量/海龟实例返回从海龟位置到由数值对或矢量或另一海龟对应位置的单位距离
求距离distance(x, y)x:整数或浮点数
y:整数或浮点数
返回从海龟位置到由 (x,y) 对应位置的单位距离
设置角度的度量单位degrees(fullcircle)fullcircle:整数或浮点数设置角度的度量单位,即一个圆周为多少度,默认值 360 度
设置角度的度量单位为弧度radians()设置角度的度量单位为弧度,值为degrees(2*math.pi)
画笔落下pendown()
pd()
down()
设置画笔落下,海龟移动时将画线
画笔抬起penup()
pu()
up()
设置画笔抬起,海龟移动时不会画线
设置线条粗细pensize(width)
width(width)
width:正整数或正浮点数设置线条粗细为 width
查看线条粗细pensize()
width()
返回当前线条粗细
查询画笔属性pen()返回当前画笔属性
设置画笔属性pen(pen, pendict)pen:一个包含部分或全部下列键的字典
pendict:一个或多个键为关键字的关键字参数
设置画笔的属性,以一个包含以下键值对的字典表示:
“shown”: True/False
"pendown": True/False
"pencolor": 颜色字符串或颜色元组
"fillcolor": 颜色字符串或颜色元组
"pensize": 正数值
"speed": 0~10 范围内的数值
"resizemode": “auto” 或 “user” 或 “noresize”
“stretchfactor”: (正数值, 正数值)
“outline”: 正数值
"tilt": 数值
画笔是否落下isdown()画笔落下返回 True,画笔抬起返回 False
查看画笔颜色pencolor()返回画笔颜色
设置画笔颜色pencolor(colorstring)colorstring:颜色字符串设置画笔颜色为 colorstring 指定的 Tk 颜色描述字符串,如 “blue” 或 “#ffffff”
设置画笔颜色pencolor((r, g, b))r, g, b:范围为 0~colormode,colormode 的值为 1.0 或 255设置画笔颜色为以 r, g, b 元组表示的 RGB 颜色
设置画笔颜色pencolor(r, g, b)r, g, b:范围为 0~colormode设置画笔颜色为以 r, g, b 表示的 RGB 颜色
返回填充颜色fillcolor()返回以颜色描述字符串或元组表示的当前填充颜色
设置填充颜色fillcolor(colorstring)colorstring:颜色字符串设置填充颜色为 colorstring 指定的 Tk 颜色描述字符串,如 “blue” 或 “#ffffff”
设置填充颜色fillcolor((r, g, b))r, g, b:范围为 0~colormode,colormode 的值为 1.0 或 255设置填充颜色为以 r, g, b 元组表示的 RGB 颜色
设置填充颜色fillcolor(r, g, b)r, g, b:范围为 0~colormode设置填充颜色为 r, g, b 表示的 RGB 颜色
查询画笔颜色和填充颜色color()返回以一对颜色描述字符串或元组表示的当前画笔颜色和填充颜色
同时设置画笔颜色和填充颜色color(colorstring)
color((r,g,b))
color(r,g,b)
设置填充颜色和画笔颜色同时为指定的值
分别设置画笔颜色和填充颜色color(colorstring1, colorstring2)
color((r1,g1,b1), (r2,g2,b2))
设置填充颜色,画笔颜色
填充状态filling()返回填充状态,填充为 True,否则为 False
填充begin_fill()在绘制要填充的形状之前调用
填充end_fill()填充上次调用 begin_fill() 之后绘制的形状
重置海龟绘图reset()删除屏幕中的绘图,海龟回到原点并重置所有变量
删除海龟绘图clear()删除屏幕中指定海龟绘图,不移动海龟,海龟的状态和位置不变
文本write(arg, move, align, font=(“Arial”, 8, “normal”))arg:字符串文本
move:True(画笔会移至文本的右下角)/False
align:“left”, “center” 或 "right"
font:一个三元组 (fontname, fontsize, fonttype)
书写文本
隐藏海龟hideturtle()
ht()
隐藏海龟
显示海龟showturtle()
st()
显示海龟
是否海龟可见isvisible()海龟被隐藏返回 False
查询海龟形状shape()返回当前海龟的形状名
设置海龟形状shape(name)name:有效的形状名字符串设置海龟形状为 name 指定的形状名,name 指定的形状名应存在于 TurtleScreen 的 shape 字典中,多边形的形状初始时有以下几种: “arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”
查询大小调整模式resizemode()返回当前的大小调整模式
设置大小调整模式resizemode(rmode)rmode:“auto”, “user”, “noresize”设置大小调整模式为以下值之一:
“auto”: 根据画笔粗细值调整海龟的外观
"user": 根据拉伸因子和轮廓宽度 (outline) 值调整海龟的外观,两者是由 shapesize() 设置的
"noresize": 不调整海龟的外观大小
查询画笔属性shapesize()
turtlesize()
返回画笔的属性
设置画笔属性shapesize(stretch_wid, stretch_len, outline)
turtlesize(stretch_wid, stretch_len, outline)
stretch_wid:正整数或正浮点数
stretch_len:正整数或正浮点数
outline:正整数或正浮点数
设置画笔的属性 x/y-拉伸因子和/或轮廓
当且仅当大小调整模式设为 “user” 时海龟会基于其拉伸因子调整外观。
stretch_wid 为垂直于其朝向的宽度拉伸因子
stretch_len 为平等于其朝向的长度拉伸因子,决定形状轮廓线的粗细
查询当前剪切因子shearfactor()返回当前的剪切因子,与海龟朝向平行的线条将被剪切
设置剪切因子shearfactor(shear)shear:整数或浮点数设置当前的剪切因子,根据 share 指定的剪切因子即剪切角度的切线来剪切海龟形状。不改变海龟的朝向
海龟转动tilt(angle)angle:整数或浮点数海龟形状自其当前的倾角转动 angle 指定的角度,但不改变海龟的朝向
旋转海龟形状settiltangle(angle)angle:整数或浮点数旋转海龟形状使其指向 angle 指定的方向,忽略其当前的倾角,不改变海龟的朝向
设置倾角tiltangle(angle)angle:整数或浮点数设置当前的倾角。如果指定 angle 则旋转海龟形状使其指向 angle 指定的方向,忽略其当前的倾角。不改变海龟的朝向
变形矩阵shapetransform()返回以 4 元素元组表示的变形矩阵
变形矩阵shapetransform(t11, t12, t21, t22)t11:整数或浮点数
t12:整数或浮点数
t21:整数或浮点数
t12:整数或浮点数
根据设置指定元素的矩阵来改变海龟形状,矩阵第一排的值为 t11, t12 而第二排的值为 t21, t22。 行列式 t11 * t22 - t12 * t21 必须不为零,否则会引发错误。 根据指定矩阵修改拉伸因子 stretchfactor, 剪切因子 shearfactor 和倾角 tiltangle
返回元组表示多边形get_shapepoly()返回以坐标值对元组表示的当前形状多边形
鼠标按键绑定onclick(fun, btn, add=None)fun:函数,调用时将传入两个参数表示在画布上点击的坐标。
btn:鼠标按钮编号,默认值为 1 (鼠标左键)
add:True(添加一个新绑定)/False(取代先前的绑定)
将 fun 指定的函数绑定到鼠标点击此海龟事件,如果 fun 值为 None,则移除现有的绑定
释放鼠标按键绑定onrelease(fun, btn, add=None)fun:函数,调用时将传入两个参数表示在画布上点击的坐标。
btn:鼠标按钮编号,默认值为 1 (鼠标左键)
add:True(添加一个新绑定)/False(取代先前的绑定)
将 fun 指定的函数绑定到在此海龟上释放鼠标按键事件,如果 fun 值为 None,则移除现有的绑定
移动鼠标绑定ondrag(fun, btn, add=None)fun:函数,调用时将传入两个参数表示在画布上点击的坐标。
btn:鼠标按钮编号,默认值为 1 (鼠标左键)
add:True(添加一个新绑定)/False(取代先前的绑定)
将 fun 指定的函数绑定到在此海龟上移动鼠标事件,如果 fun 值为 None,则移除现有的绑定
记录多边形顶点begin_poly()开始记录多边形的顶点,当前海龟位置为多边形的第一个顶点
停止记录多边形顶点end_poly()停止记录多边形的顶点,当前海龟位置为多边形的最后一个顶点,它将连线到第一个顶点
返回最新记录多边形get_poly()返回最新记录的多边形
克隆海龟clone()创建并返回海龟的克隆体,具有相同的位置、朝向和海龟属性
返回自身getturtle()
getpen()
返回海龟对象自身
返回 TurtleScreen 类对象getscreen()返回作为海龟绘图场所的 TurtleScreen 类对象
禁用撤销缓冲区setundobuffer()禁用撤销缓冲区
设置撤销缓冲区setundobuffer(size)size:整数设置撤销缓冲区,开辟一个给定大小的空撤销缓冲区
返回撤销缓冲区里的条目数undobufferentries()返回撤销缓冲区里的条目数
返回背景颜色bgcolor()返回 TurtleScreen 的背景颜色
设置背景颜色bgcolor(args)args:颜色字符串或三个取值范围 0~colormode 内的数值或一个取值范围相同的数值3元组设置 TurtleScreen 的背景颜色
返回背景图片名称bgpic()返回当前背景图片名称
设置背景图片bgpic(picname)picname:字符串文件名或"nopic"或None设置背景图片,如果 picname 为一个文件名,则将相应图片设为背景,如果 picname 为 “nopic”,则删除当前背景图片,如果 picname 为 None,则返回当前背景图片文件名
删除所有海龟的绘图clear()
clearscreen()
删除所有海龟的全部绘图,重置 TurtleScreen 为初始状态
重置状态reset()
resetscreen()
重置屏幕上的所有海龟为其初始状态
返回画布大小screensize()返回当前的 (canvaswidth, canvasheight)
改变画布大小screensize(canvwidth, canvheight, bg)canvwidth:正整数,以像素表示画布的新宽度值
canvheight:正整数,以像素表示画面的新高度值
bg:颜色字符串或颜色元组,新的背景颜色
改变海龟绘图场所的画布大小,不改变绘图窗口
设置自定义坐标系setworldcoordinates(llx, lly, urx, ury)llx:整数或浮点数, 画布左下角的 x-坐标
lly:整数或浮点数, 画布左下角的 y-坐标
urx:整数或浮点数, 画面右上角的 x-坐标
ury:整数或浮点数, 画布右上角的 y-坐标
设置用户自定义坐标系并在必要时切换模式为 “world”。这会执行一次 screen.reset()。如果 “world” 模式已激活,则所有图形将根据新的坐标系重绘
返回延迟值delay()返回以毫秒数表示的延迟值
设置延迟值delay(delay)delay:正整数设置以毫秒数表示的延迟值 delay,绘图延迟越长,动画速度越慢
启用/禁用动画tracer(n, delay)n:非负整数
delay:非负整数
启用/禁用海龟动画并设置刷新图形的延迟时间。如果指定 n 值,则只有每第 n 次屏幕刷新会实际执行。如果调用时不带参数,则返回当前保存的 n 值。第二个参数设置延迟值
刷新update()执行一次 TurtleScreen 刷新,在禁用追踪时使用
设置焦点listen(xdummy, ydummy)设置焦点到 TurtleScreen (以便接收按键事件)。使用两个 Dummy 参数以便能够传递 listen() 给 onclick 方法
绑定函数到按键释放事件onkey(fun, key)
onkeyrelease(fun, key)
fun:无参数的函数或 None
key:字符串,键 (例如 “a”) 或键标 (例如 “space”)
绑定 fun 指定的函数到按键释放事件,如果 fun 值为 None,则移除事件绑定,为了能够注册按键事件,TurtleScreen 必须得到焦点
绑定函数到按键按下事件nkeypress(fun, key)fun:无参数的函数或 None
key:字符串,键 (例如 “a”) 或键标 (例如 “space”)
绑定 fun 指定的函数到指定键的按下事件。如未指定键则绑定到任意键的按下事件,为了能够注册按键事件,必须得到焦点
绑定函数到鼠标点击事件onclick(fun, btn, add)
onscreenclick(fun, btn, add)
fun:函数,调用时将传入两个参数表示在画布上点击的坐标
btn:鼠标按钮编号,默认值为 1 (鼠标左键)
add:True(添加一个新绑定)或False(取代先前的绑定)
绑定 fun 指定的函数到鼠标点击屏幕事件,如果 fun 值为 None,则移除现有的绑定
在计时完毕调用函数ontimer(fun, t)fun:无参数的函数
t:数值 >= 0
安装一个计时器,在 t 毫秒后调用 fun 函数
绘图结束mainloop()
done()
开始事件循环,调用 Tkinter 的 mainloop 函数。必须作为一个海龟绘图程序的结束语句。如果一个脚本是在以 -n 模式 (无子进程) 启动的 IDLE 中运行时不可使用用于实现海龟绘图的交互功能
弹出对话框输入字符串textinput(title, prompt)title:字符串
prompt:字符串
弹出一个对话框窗口用来输入一个字符串。形参 title 为对话框窗口的标题,prompt 为一条文本,通常用来提示要输入什么信息。返回输入的字符串。如果对话框被取消则返回 None
弹出对话框输入数值numinput(title, prompt, default, minval, maxval)title:字符串
prompt:字符串
default:数值 (可选)
minval:数值 (可选)
maxval:数值 (可选)
弹出一个对话框窗口用来输入一个数值。title 为对话框窗口的标题,prompt 为一条文本,通常用来描述要输入的数值信息。default: 默认值, minval: 可输入的最小值, maxval: 可输入的最大值。输入数值的必须在指定的 minval … maxval 范围之内,否则将给出一条提示,对话框保持打开等待修改。返回输入的数值。如果对话框被取消则返回 None
设置海龟模式mode(mode)mode:“standard”, “logo” 或 “world”设置海龟模式 (“standard”, “logo” 或 “world”) 并执行重置。如未指定模式则返回当前的模式(“standard”,初始海龟朝向朝右 (东),正数角度逆时针;“logo”,初始海龟朝向朝上 (北),正数角度顺时针)
返回/设置颜色模式colormode(cmode)cmode:数值 1.0 或 255返回颜色模式或将其设为 1.0 或 255。构成颜色三元组的 r, g, b 数值必须在 0~cmode 范围之内
返回此 Canvas 对象getcanvas()返回此 TurtleScreen 的 Canvas 对象
返回海龟形状列表getshapes()返回所有当前可用海龟形状的列表
海龟形状加入形状列表register_shape(name)
addshape(name)
name:gif 文件的文件名将一个海龟形状加入 TurtleScreen 的形状列表
海龟形状加入形状列表register_shape(name, shape)
addshape(name, shape)
name:指定的字符串,shape:由坐标值对构成的元组或者name:指定的字符串,为一个 (复合) Shape 类对象将一个海龟形状加入 TurtleScreen 的形状列表
返回海龟列表turtles()返回屏幕上的海龟列表
返回窗口的高度window_height()返回海龟窗口的高度
返回窗口的宽度window_width()返回海龟窗口的宽度

奥运五环的例子

tokyo
代码如下:

"""
绘制奥运五环
Version: 1.0
Author: Caizi
"""
import turtle
turtle.width(10)

turtle.color("blue")
turtle.circle(50)

turtle.penup()
turtle.goto(120, 0)
turtle.pendown()
turtle.color("black")
turtle.circle(50)

turtle.penup()
turtle.goto(240, 0)
turtle.pendown()
turtle.color("red")
turtle.circle(50)

turtle.penup()
turtle.goto(60, -50)
turtle.pendown()
turtle.color("yellow")
turtle.circle(50)

turtle.penup()
turtle.goto(180, -50)
turtle.pendown()
turtle.color("green")
turtle.circle(50)

turtle.penup()
turtle.goto(40, -100)
turtle.pendown()
turtle.color("black")
turtle.write("Tokyo 2020", font=("微软雅黑", 20, "bold"))

turtle.done()


所属网站分类: 技术文章 > 博客

作者:你爱不爱我

链接:http://www.pythonpdf.com/blog/article/543/3924837a4004b0310635/

来源:编程知识网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)