失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python turtle库的使用_Python turtle库使用教程

python turtle库的使用_Python turtle库使用教程

时间:2023-07-24 15:39:22

相关推荐

python turtle库的使用_Python turtle库使用教程

1.基础概念

1 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置。

常用的画布方法有两个:screensize()和setup()。

(1)turtle.screensize(canvwidth=None, canvheight=None, bg=None)

参数分别为画布的宽(单位像素), 高, 背景颜色

如:

turtle.screensize(800, 600, "green")

turtle.screensize() #返回默认大小(400, 300)

(2)turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:

width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例

(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

如:

turtle.setup(width=0.6, height=0.6)

turtle.setup(width=800, height=800, startx=100, starty=100)

2 画笔

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟。

这里我们描述小乌龟时使用了两个词语:标原点(位置),面朝x轴正方向(方向),turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

(1)画笔的属性

画笔有颜色、画线的宽度等属性。

1) turtle.pensize():设置画笔的宽度;

2) turtle.pencolor():没有参数传入返回当前画笔颜色;传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。

>>> pencolor(‘brown‘)

>>> tup = (0.2, 0.8, 0.55)

>>> pencolor(tup)

>>> pencolor()

‘#33cc8c‘

3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

(2)绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:运动命令,画笔控制命令和全局控制命令

画笔运动命令:

命令

说明

turtle.forward(distance)

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

turtle.backward(distance)

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

turtle.right(degree)

顺时针移动degree°

turtle.left(degree)

逆时针移动degree°

turtle.pendown()

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

turtle.goto(x,y)

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

turtle.penup()

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

turtle.speed(speed)

画笔绘制的速度范围[0,10]整数

turtle.circle()

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

画笔控制命令:

命令

说明

turtle.pensize(width)

绘制图形时的宽度

turtle.pencolor()

画笔颜色

turtle.fillcolor(colorstring)

绘制图形的填充颜色

turtle.color(color1, color2)

同时设置pencolor=color1, fillcolor=color2

turtle.filling()

返回当前是否在填充状态

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成;

turtle.hideturtle()

隐藏箭头显示;

turtle.showturtle()

与hideturtle()函数对应

全局控制命令

命令

说明

turtle.clear()

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

turtle.reset()

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

turtle.undo()

撤销上一个turtle动作

turtle.isvisible()

返回当前turtle是否可见

stamp()

复制当前图形

turtle.write(s[,font("fontname",font_size,"font_type")])

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

2. 绘图举例

哆啦A梦

1 importturtle as t2 importmath as m3

4 t.pensize(4) #设置画笔的大小

5 t.colormode(255) #设置GBK颜色范围为0-255

6 t.color((0,0,255),"blue") #设置画笔颜色和填充颜色(pink)

7 t.setup(800,600) #设置主窗口的大小为840*500

8 t.speed(10) #设置画笔速度为10

9 #头部

10 t.hideturtle()11 t.pu() #提笔

12 t.goto(-50,0) #画笔前往坐标(0,0)

13 t.seth(150)14 t.pd() #下笔

15 t.begin_fill()16 t.color(0,0,255)17 for i in range(300):18 t.rt(1)19 t.forward(2*m.pi*100/360)20 t.seth(0)21 t.backward(10)22

23 t.seth(30)24 for i in range(300):25 t.lt(1)26 t.forward(2*m.pi*80/360)27 t.seth(0)28 t.backward(10)29 t.end_fill()30 #眼睛

31 t.pu()32 t.begin_fill()33 t.pensize(3)34 t.pencolor(0,0,0)35 t.goto(-15,40*m.sqrt(3)+60)36 t.pd()37 t.circle(15)38 t.color(255,255,255)39 t.end_fill()40

41 t.pu()42 t.begin_fill()43 t.pensize(3)44 t.pencolor(0,0,0)45 t.goto(-15,40*m.sqrt(3)+60)46 t.pd()47 t.circle(5)48 t.color(0,0,0)49 t.end_fill()50

51 t.pu()52 t.begin_fill()53 t.pensize(3)54 t.pencolor(0,0,0)55 t.goto(15,40*m.sqrt(3)+60)56 t.pd()57 t.circle(15)58 t.color(255,255,255)59 t.end_fill()60

61 t.pu()62 t.begin_fill()63 t.pensize(3)64 t.pencolor(0,0,0)65 t.goto(15,40*m.sqrt(3)+60)66 t.pd()67 t.circle(5)68 t.color(0,0,0)69 t.end_fill()70

71

72 #鼻子

73 t.pu()74 t.pensize(3)75 t.pencolor(255,0,0)76 t.goto(0,40*m.sqrt(3)+40)77 t.pd()78 t.begin_fill()79 t.color(255,0,0)80 t.circle(10)81 t.end_fill()82 #嘴巴

83 t.pu()84 t.pensize(3)85 t.pencolor(0,0,0)86 t.goto(0,40*m.sqrt(3)+40)87 t.pd()88 t.seth(-90)89 t.forward(50)90 t.pu()91 t.goto(-50,90-10*m.sqrt(3))92 t.seth(-30)93 t.pd()94 for i in range(60):95 t.lt(1)96 t.forward(2*m.pi*100/360)97

98

99 #胡须

100 t.pu()101 t.pensize(3)102 t.pencolor(0,0,0)103 t.goto(-30,40*m.sqrt(3)+25)104 t.seth(0)105 t.pd()106 t.backward(40)107

108 t.pu()109 t.pensize(3)110 t.pencolor(0,0,0)111 t.goto(-30,40*m.sqrt(3)+15)112 t.pd()113 t.seth(30)114 t.backward(40)115

116 t.pu()117 t.pensize(3)118 t.pencolor(0,0,0)119 t.goto(-30,40*m.sqrt(3)+35)120 t.pd()121 t.seth(-30)122 t.backward(40)123

124 t.pu()125 t.pensize(3)126 t.pencolor(0,0,0)127 t.goto(30,40*m.sqrt(3)+25)128 t.seth(0)129 t.pd()130 t.forward(40)131

132

133

134 t.pu()135 t.pensize(3)136 t.pencolor(0,0,0)137 t.goto(30,40*m.sqrt(3)+35)138 t.pd()139 t.seth(30)140 t.forward(40)141

142 t.pu()143 t.pensize(3)144 t.pencolor(0,0,0)145 t.goto(30,40*m.sqrt(3)+15)146 t.pd()147 t.seth(-30)148 t.forward(40)149

150 #a=0.4

151 #for i in range(360):

152 #if 0<=i<90 or 180<=i<270:

153 #a=a+0.008

154 #t.lt(1) #向左转3度

155 #t.fd(a) #向前走a的步长

156 #else:

157 #a=a-0.008

158 #t.lt(1)

159 #t.fd(a)

160 t.done()

代码运行结果如下:

如果觉得《python turtle库的使用_Python turtle库使用教程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。