加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python turtle海龟作图模块

发布时间:2020-12-17 17:02:40 所属栏目:Python 来源:网络整理
导读:Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。 官方文档: https://docs.python.org/3/

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

官方文档:

https://docs.python.org/3/library/turtle.html

turtle绘图基础知识

画布(canvas)


画笔

画笔属性

import?turtle

t=turtle.Turtle()
t.pensize()??#?画笔宽度

t.pencolor()?#?不传参数,则返回当前画笔颜色,传入参数则是设置画笔颜色,可以是字符串如“green”,"red",也可以是RGB?3元组

#?画笔的移动速度,速度范围[0,10]整数,数字越大移动速度越快
t.speed(speed)

画笔运行命令

right(degree)

left(degree)

pendown()

goto(x,y)

penup()

circle()

setx( )

sety( )

setheading(angle)

home()

dot(r)

命令

说明

forward(distance)

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

backward(distance)

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

顺时针移动degree°

逆时针移动degree°

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

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

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

画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

将当前x轴移动到指定位置

将当前y轴移动到指定位置

设置当前朝向为angle角度

设置当前画笔位置为原点,朝向东。

绘制一个指定直径和颜色的圆点

画笔控制命令

fillcolor(colorstring)

color(color1,color2)

filling()

begin_fill()

end_fill()

hideturtle()

showturtle()

绘制图形的填充颜色

同时设置pencolor=color1,fillcolor=color2

返回当前是否在填充状态

准备开始填充图形

填充完成

隐藏画笔的turtle形状

显示画笔的turtle形状

全局控制命令

clear()

reset()

undo()

isvisible()

stamp()

turtle.write(s [,font=("font-name",font_size,"font_type")])

清空turtle窗口,但是turtle的位置和状态不会改变

清空窗口,重置turtle状态为起始状态

撤销上一个turtle动作

返回当前turtle是否可见

复制当前图形

写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

其他命令

mainloop()或done()

mode(mode=None)

delay(delay=None)

begin_poly()

end_poly()

get_poly()

启动事件循环?-调用Tkintermainloop函数。

必须是乌龟图形程序中的最后一个语句。

设置乌龟模式(“standard”“logo”“world”)并执行重置。如果没有给出模式,则返回当前模式。

模式初始龟标题正角度standard向右(东)逆时针logo向上(北)顺时针

设置或返回以毫秒为单位的绘图延迟。

开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

返回最后记录的多边形。

代码示例:

1.? 简单的树

import?turtle


def?tree(branch_len):
????if?branch_len>5:
????????t.forward(branch_len)
????????t.right(20)
????????tree(branch_len-15)
????????t.left(40)
????????tree(branch_len-15)
????????t.right(20)
????????t.backward(branch_len)


t=turtle.Turtle()
t.left(90)
t.penup()
t.backward(100)
t.pendown()
t.pencolor('green')
t.pensize(2)
tree(75)
t.hideturtle()
turtle.done()

其他样例:

https://www.zhihu.com/question/271643290

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读