Python turtle库的学习笔记

 python turtle 库的学习笔记

        turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制。turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言。
turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),前进方向为水平右方。  在Python3系列版本安装目录的Lib文件下可以找到turtle.py文件。
       

  一 使用import保留字对turtle库的引用有如下3种方式,效果相同:

(1)import turtle

 对turtle库中函数调用采用turtle.<函数名>( )形式:

(2)from turtle import *

对turtle库中函数调用采用<函数名>( )形式,不再使用turtle.作为前导:

  (3)  import turtle as t

保留字as将turtle库给予别名t, 则对turtle库中函数调用采用更简洁的t.<函数名>( )形式:

 二 绘图的基础知识

(1)绘图窗口设置命令

turtle.setup(400,300,200,100):参数以此(宽,高,距离屏幕左边距离,距离屏幕上方距离),屏幕左上角原点,单位像素。

 (2)运动命令

turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点,向右为x轴,以上为y轴。

turtle.fd(d)、turtle.forward(d):以当前方向,往前行进d像素。

turtle.bk(d)、turtle.backword(d):保持当前方向不变,往后退行d像素。

turtle.circle(r,angle):从当前位置以r为半径圆的angle角度旋转。

(3)方向设置命令

turtle.seth(angle):以x轴方向为起点将方向偏转为angle度,逆时针为正。只改变行进方向但不行进。

turtle.left(angle):在当前行进方向的基础上,向左旋转angle度。

turtle.right(angle):在当前行进方向的基础上,向右旋转angle度。

(4)画笔控制命令

turtle.penup():抬笔

turtle.pendown():落笔

turtle.pensize(width):画笔粗细

turtle.pencolor(颜色名red/RGB三元组/颜色编码):画笔颜色

turtle.fillcolor(colorstring):绘制图形的填充颜色

turtle.begin_fill():开始填充

turtle.end_fill():结束填充

turtle.filling():返回当前是否在填充状态

(5)全局控制命令

turtle.clear():清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset():清空窗口,重置turtle状态为起始状态

turtle.undo():撤销上一个turtle动作

turtle.isvisible():返回当前turtle是否可见
stamp():复制当前图形
turtle.write(s[,font=("font-name",font_size,"font_type")]):写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项

 三 绘图举例

(1)小蟒蛇

 1 import turtle
 2 turtle.setup(650,350,200,200)
 3 turtle.penup()
 4 turtle.fd(-250)
 5 turtle.pendown()
 6 turtle.pensize(15)
 7 turtle.pencolor("#00FF00")
 8 turtle.seth(-40)
 9 for i in range(4):
10     turtle.circle(40,80)
11     turtle.circle(-40,80)
12 turtle.circle(40,80/2)
13 turtle.fd(40)
14 turtle.circle(16,180)
15 turtle.fd(40*2/3)
16 turtle.done()

效果如图:

  

(2)玫瑰花

 1 import turtle
 2 
 3 # 设置初始位置
 4 turtle.penup()
 5 turtle.left(90)
 6 turtle.fd(200)
 7 turtle.pendown()
 8 turtle.right(90)
 9 
10 # 花蕊
11 turtle.fillcolor("red")
12 turtle.begin_fill()
13 turtle.circle(10,180)
14 turtle.circle(25,110)
15 turtle.left(50)
16 turtle.circle(60,45)
17 turtle.circle(20,170)
18 turtle.right(24)
19 turtle.fd(30)
20 turtle.left(10)
21 turtle.circle(30,110)
22 turtle.fd(20)
23 turtle.left(40)
24 turtle.circle(90,70)
25 turtle.circle(30,150)
26 turtle.right(30)
27 turtle.fd(15)
28 turtle.circle(80,90)
29 turtle.left(15)
30 turtle.fd(45)
31 turtle.right(165)
32 turtle.fd(20)
33 turtle.left(155)
34 turtle.circle(150,80)
35 turtle.left(50)
36 turtle.circle(150,90)
37 turtle.end_fill()
38 
39 # 花瓣1
40 turtle.left(150)
41 turtle.circle(-90,70)
42 turtle.left(20)
43 turtle.circle(75,105)
44 turtle.setheading(60)
45 turtle.circle(80,98)
46 turtle.circle(-90,40)
47 
48 # 花瓣2
49 turtle.left(180)
50 turtle.circle(90,40)
51 turtle.circle(-80,98)
52 turtle.setheading(-83)
53 
54 # 叶子1
55 turtle.fd(30)
56 turtle.left(90)
57 turtle.fd(25)
58 turtle.left(45)
59 turtle.fillcolor("green")
60 turtle.begin_fill()
61 turtle.circle(-80,90)
62 turtle.right(90)
63 turtle.circle(-80,90)
64 turtle.end_fill()
65 
66 turtle.right(135)
67 turtle.fd(60)
68 turtle.left(180)
69 turtle.fd(85)
70 turtle.left(90)
71 turtle.fd(80)
72 
73 # 叶子2
74 turtle.right(90)
75 turtle.right(45)
76 turtle.fillcolor("green")
77 turtle.begin_fill()
78 turtle.circle(80,90)
79 turtle.left(90)
80 turtle.circle(80,90)
81 turtle.end_fill()
82 
83 turtle.left(135)
84 turtle.fd(60)
85 turtle.left(180)
86 turtle.fd(60)
87 turtle.right(90)
88 turtle.circle(200,60)

效果如图:

 

 



posted @ 2020-03-11 16:10  酒久  阅读(379)  评论(0编辑  收藏  举报