今天是三月七号,也就是女生节,或者女神节。不知道你是不是有自己喜欢的女孩子,在这里你可以用turtle库绘制一朵玫瑰花,送给你喜欢的姑娘。(拉到最后有惊喜哦)但在画这朵玫瑰花之前,先来一个基础的图形,也可以说是学习turtle库的入门绘画图形——蟒蛇图形。
一、python蟒蛇绘制
代码:
1 import turtle
2 turtle.setup(650, 350, 200, 200)
3 turtle.penup()
4 turtle.fd(-250)
5 turtle.pendown()
6 turtle.pensize(25)
7 turtle.pencolor("purple")
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()
展示图:
二、turtle库的相关知识
1.turtle库又叫海龟库。
意思是画图就像海龟在画布上行走一样,海龟走过的轨迹形成了一幅图画。turtle库是python的标准库之一,是一个图形绘制函数库。
2.保留字import。
库引用函数。import引用库有两种方式:
第一种:import <库名> 使用库中函数的格式:<库名>.<函数名>(<函数参数>)
第二种:from <库名> import <函数名> 或from <库名> import *#其中,*是通配符,表示所有函数。使用格式:<函数名>.(<函数参数>)
另一种用法:
import <库名> as <库别名>
<库别名>.<函数名>(<函数参数>)
3.turtle库函数介绍:
(1)turtle.setup(width, height, startx, starty)
作用:设置主窗体的大小和位置
参数:width:窗口宽度。height: 窗口高度。startx: 窗口左侧与屏幕左侧的像素距离。如果值是None,窗口位于屏幕水平中央。starty: 窗口顶部与屏幕顶部的像素距离。如果值是None,窗口位于屏幕垂直中央。
(2)turtle.penup()和turtle.pendown()
作用:抬起画笔,之后画笔移动不绘制图形。和,落下画笔。开始绘制图形。
(3)turtle.pensize(width) 别名:turtle.width()
作用:设置画笔宽带。如果为None或空,返回当前画笔宽度。
(4)turtle.penclor(colorstring) 别名:turtle.pencolor((r, g, b))
作用:设置画笔颜色,为空则返回当前画笔颜色。
参数:colorstring:表示颜色的字符串,例如,"purple", "red", "blue"等。(r, g, b):颜色对应的RGB数值,例如,(51, 204, 140)。下面是部分典型RGB颜色对照表。
(5)turtle.fd(distance) 别名:turtle.forward(distance)
作用:向箭头的方向前进
参数:distance:行进的距离,当值为负数时,表示向相反方向前进。
(6)turtle.seth(to_angle) 别名:turtle.setheading(to_angle)
作用:设置前进的角度,该角度时绝方向的角度值。
参数:to_angle:角度的整数值。
(7)turtle.circle(radius, extent=None)
作用:根据半径radius绘制角度extent的弧形
参数:radius:弧形半径,当值为正数时,半径在前进方向的左侧,反之,在右侧。extent:绘制弧形的角度,参数为None,则绘制整个圆形。
4.循环语句: for,in 和 range() 函数
(1)for <变量> in range(<次数>):
<被循环执行的语句>
1 for i in range(5):
2 print(i)
(2)range函数:产生循环计数序列。
range(N):产生0到N-1的整数序列,共N个。range(5)#0 1 2 3 4
range(M, N):产生M到N-1的整数序列,共N-M个。range(2, 5)#2 3 4
三、玫瑰花的绘制
代码:
1 import turtle
2 # 设置初始位置
3 turtle.goto(0, 0)
4 turtle.color("black")
5 turtle.penup()
6 turtle.left(90)
7 turtle.fd(200)
8 turtle.pendown()
9 turtle.right(90)
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 # 花瓣1
39 turtle.left(150)
40 turtle.circle(-90, 70)
41 turtle.left(20)
42 turtle.circle(75, 105)
43 turtle.setheading(60)
44 turtle.circle(80, 98)
45 turtle.circle(-90, 40)
46 # 花瓣2
47 turtle.left(180)
48 turtle.circle(90, 40)
49 turtle.circle(-80, 98)
50 turtle.setheading(-83)
51 # 叶子1
52 turtle.fd(30)
53 turtle.left(90)
54 turtle.fd(25)
55 turtle.left(45)
56 turtle.fillcolor("green")
57 turtle.begin_fill()
58 turtle.circle(-80, 90)
59 turtle.right(90)
60 turtle.circle(-80, 90)
61 turtle.end_fill()
62 turtle.right(135)
63 turtle.fd(60)
64 turtle.left(180)
65 turtle.fd(85)
66 turtle.left(90)
67 turtle.fd(80)
68 # 叶子2
69 turtle.right(90)
70 turtle.right(45)
71 turtle.fillcolor("green")
72 turtle.begin_fill()
73 turtle.circle(80, 90)
74 turtle.left(90)
75 turtle.circle(80, 90)
76 turtle.end_fill()
77 turtle.left(135)
78 turtle.fd(60)
79 turtle.left(180)
80 turtle.fd(60)
81 turtle.right(90)
82 turtle.circle(200, 60)
83 turtle.penup()
View Code
展示图: