turtle库的学习笔记(python)

编程

turtle库的学习笔记(python

        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#PythonDraw.py

2import turtle as tt

3def drawSnake(rad,angle,len,neckrad):

4 colors=["LightCoral","orange","yellow","MediumSpringGreen","cyan","MediumBlue"]#六种颜色

5for i in range(len):

6 tt.color(colors[i])

7 tt.circle(rad,angle)

8 tt.circle(-rad,angle)

9 tt.color("Fuchsia")

10 tt.circle(rad,angle/2)

11 tt.fd(rad)

12 tt.circle(neckrad+1,180)

13 tt.fd(rad*2/3)

14

15

16def main():

17 tt.setup(1300,800,0,0)

18 tt.penup()

19 tt.goto(-350,0)

20 tt.pendown()

21 pythonsize=30

22 tt.pensize(30)

23 tt.seth(-40)

24 drawSnake(40,80,6,pythonsize/2)

25

26

27main()

28 tt.done()

Python小海龟绘图之颜色码对照表:

https://mp.weixin.qq.com/s?src=11&timestamp=1584246963&ver=2217&signature=lMb0twV32ZppcpRo3AfqFMZi0vtHB3oLPjjYMCACHz9PNO7EoncrvGCRWUeg5FYzGioV2aAExFCASNJUG7vGl2R5THDCOZwiQqHF0DvHGH4i7u3KYCY*LPJW11OuBrkj&new=1

 

(2)玫瑰花的绘制

 

  1from turtle import *

2import time

3

4 setup(5000,5000,0,0)

5speed(0)

6penup()

7 pencolor("SaddleBrown") #改变画笔颜色

8 seth(90)

9 fd(340)

10seth(0)

11pendown()

12

13 speed(5)

14begin_fill()

15 fillcolor("blue") #改变花瓣颜色

16 circle(50,30)

17

18for i in range(10):

19 fd(1)

20 left(10)

21

22 circle(40,40)

23

24for i in range(6):

25 fd(1)

26 left(3)

27

28 circle(80,40)

29

30for i in range(20):

31 fd(0.5)

32 left(5)

33

34 circle(80,45)

35

36for i in range(10):

37 fd(2)

38 left(1)

39

40 circle(80,25)

41

42for i in range(20):

43 fd(1)

44 left(4)

45

46 circle(50,50)

47

48 time.sleep(0.1)

49

50 circle(120,55)

51

52speed(0)

53

54 seth(-90)

55 fd(70)

56

57 right(150)

58 fd(20)

59

60 left(140)

61 circle(140,90)

62

63 left(30)

64 circle(160,100)

65

66 left(130)

67 fd(25)

68

69penup()

70 right(150)

71 circle(40,80)

72pendown()

73

74 left(115)

75 fd(60)

76

77penup()

78 left(180)

79 fd(60)

80pendown()

81

82end_fill()

83

84 right(120)

85 circle(-50,50)

86 circle(-20,90)

87

88 speed(1)

89 fd(75)

90

91speed(0)

92 circle(90,110)

93

94penup()

95 left(162)

96 fd(185)

97 left(170)

98pendown()

99 circle(200,10)

100 circle(100,40)

101 circle(-52,115)

102 left(20)

103 circle(100,20)

104 circle(300,20)

105 speed(1)

106 fd(250)

107

108penup()

109speed(0)

110 left(180)

111 fd(250)

112 circle(-300,7)

113 right(80)

114 circle(200,5)

115pendown()

116

117 left(60)

118begin_fill()

119 fillcolor("gold") #改变叶子颜色

120 circle(-80,100)

121 right(90)

122 fd(10)

123 left(20)

124 circle(-63,127)

125end_fill()

126

127penup()

128 left(50)

129 fd(20)

130 left(180)

131

132pendown()

133 circle(200,25)

134

135penup()

136 right(150)

137

138 fd(180)

139

140 right(40)

141pendown()

142begin_fill()

143 fillcolor("gold") #改变叶子颜色

144 circle(-100,80)

145 right(150)

146 fd(10)

147 left(60)

148 circle(-80,98)

149end_fill()

150

151penup()

152 left(60)

153 fd(13)

154 left(180)

155

156pendown()

157 speed(1)

158 circle(-200,23)

159

160

161

162 exitonclick()

 

 

 

 

 

以上是 turtle库的学习笔记(python) 的全部内容, 来源链接: utcz.com/z/514415.html

回到顶部