一、绘图的基本知识
(1)画布
turtle.setup(width, height, startx, starty)
- setup()设置窗体大小及位置
- 4个参数中后两个可选(后两个省略时默认窗口在屏幕正中心)
- setup()不是必须写的
(2)画笔
-在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:标原点
(位置),面朝x轴正方向
(方向),turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态。
1.画笔的属性
turtle.pensize() | 设置画笔的宽度 |
turtle.pencolor() | 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组 |
turtle.speed(speed) | 设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快 |
2.绘制命令
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.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
turtle.setx( ) | 将当前x轴移动到指定位置 |
turtle.sety( ) | 将当前y轴移动到指定位置 |
turtle.setheading(angle) | 设置当前朝向为angle角度 |
turtle.home() | 设置当前画笔位置为原点,朝向东 |
turtle.dot(r) | 绘制一个指定直径和颜色的圆点 |
turtle.fillcolor(colorstring) | 绘制图形的填充颜色 |
turtle.color(color1, color2) | 同时设置pencolor=color1, fillcolor=color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 准备开始填充图形 |
turtle.end_fill() | 填充完成 |
turtle.hideturtle() | 隐藏画笔的turtle形状 |
turtle.showturtle() | 显示画笔的turtle形状 |
turtle.seth(to_angle) | 设置小海龟当前前进方向为to_angle,该角度是绝对方向的角度值 |
二、实例
1.使用turtle库绘制一个红色五角星图形
1 import turtle 2 3 turtle.pensize(4) 4 turtle.pencolor("black") 5 turtle.fillcolor("red") 6 7 turtle.begin_fill() 8 for _ in range(5): 9 turtle.forward(200) 10 turtle.right(144) 11 turtle.end_fill()
2.使用turtle库绘制一朵玫瑰花
1 import turtle 2 # 设置初始位置 3 turtle.penup() 4 turtle.left(90) 5 turtle.fd(200) 6 turtle.pendown() 7 turtle.right(90) 8 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 40 # 花瓣1 41 turtle.left(150) 42 turtle.circle(-90, 70) 43 turtle.left(20) 44 turtle.circle(75, 105) 45 turtle.setheading(60) 46 turtle.circle(80, 98) 47 turtle.circle(-90, 40) 48 49 50 # 花瓣2 51 turtle.left(180) 52 turtle.circle(90, 40) 53 turtle.circle(-80, 98) 54 turtle.setheading(-83) 55 56 57 # 叶子1 58 turtle.fd(30) 59 turtle.left(90) 60 turtle.fd(25) 61 turtle.left(45) 62 turtle.fillcolor("green") 63 turtle.begin_fill() 64 turtle.circle(-80, 90) 65 turtle.right(90) 66 turtle.circle(-80, 90) 67 turtle.end_fill() 68 69 70 turtle.right(135) 71 turtle.fd(60) 72 turtle.left(180) 73 turtle.fd(85) 74 turtle.left(90) 75 turtle.fd(80) 76 77 # 叶子2 78 turtle.right(90) 79 turtle.right(45) 80 turtle.fillcolor("green") 81 turtle.begin_fill() 82 turtle.circle(80, 90) 83 turtle.left(90) 84 turtle.circle(80, 90) 85 turtle.end_fill() 86 87 turtle.left(135) 88 turtle.fd(60) 89 turtle.left(180) 90 turtle.fd(60) 91 turtle.right(90) 92 turtle.circle(200,60)
原文:https://www.cnblogs.com/wendy123/p/12499368.html