用turtle库画出漂亮的图形,那个谁谁谁,你妈妈叫你来画画了!

2020-03-19 15:10:00
key10
原创
3703

大家好,我是奇奇老师,武汉大学软件工程硕士,有着十几年的软件开发工程经验。


今天我们说一说用turtle库画漂亮的图形,我们主要从以下几个方面做讲解。

1.turtle库介绍

turtle库:

· (1)诞生于1969年。

· (2)Python语言的 标准库之一,意味着不用单独下载安装。

· (3)入门级的图形绘制函数库,但常见功能都有。

2.turtle绘图原理

Turtle前进的轨迹绘制成了图形。我们要做的就是控制turtle的运行轨迹。

3.官方文档

https://docs.python.org/3/library/turtle.html

4.turtle绘图窗体坐标体系

(1)、方向


用turtle库画出漂亮的图形,那个谁谁谁,你妈妈叫你来画画了!


图中的框内箭头头像是可以更改的,使用shape()函数。

(2)、角度


用turtle库画出漂亮的图形,那个谁谁谁,你妈妈叫你来画画了!


标准模式就是数学上的坐标轴角度,绕x轴逆时针角度从0°到360°。


有两种方法来改变方向:

(a)turtle.setheading(angle) 别名turtle.seth(angle):只改变方向不行进。 如 turtle.seth(90):海龟的朝向为90度

注意:与当前海龟头的朝向没有关系,90度就一定向上

(b)turtle.left(angle)与turtle.right(angle):在海龟当前头的方向上再向左/右 转多少度

5、turtle常用方法详解


(a)、移动和绘制:

turtle.forward(distance)

turtle.fd(distance)向前移动,

turtle.back(distance)

turtle.bk(distance)

turtle.backward(distance),返回

turtle.goto(x, y=None)

turtle.setpos(x, y=None)

turtle.setposition(x, y=None),移动到某坐标位置。

turtle.setx(x),y轴不变,移动x,

turtle.sety(y),x轴不变,移动y,

turtle.home()回到原点0,0,方向也是0.

turtle.circle(radius,extent = None,steps = None )画圆。

radius半径,extent 角度,steps用于绘正多边形 ,如果半径为正,则沿逆时针方向绘制圆弧,否则沿顺时针方向绘制圆弧。

turtle.dot(size = None,* color  );使用颜色color 绘制size  直径大小的圆点。

turtle.stamp()将它形状的副本印在当前位置的画布上;

turtle.clearstamp(stampid )删除stamp印的形状的副本.

turtle.clearstamps(n )删除n个stamp印的形状的副本。n不填删除所有。

turtle.undo()撤消操作

turtle.speed(speed=None);速度

“最快”:0

“快”:10

“正常”:6

“慢”:3

“最慢”:1


(b)转向:

turtle.right(angle)

turtle.rt(angle),以angle角度向右转

turtle.left(angle)

turtle.lt(angle) 相对于right,以angle角度向左转。

turtle.setheading(to_angle _)

turtle.seth(to_angle ),将它方向设置为to_angle,正数逆时针方向角度转,否则沿顺时针方向角度

standard模式:(逆时针)

0 - 东 (右)

90-北 (上)

180-西 (左)

270 - 南 (下)

logo模式:(顺时针)

90 - 东 (右)

0-北 (上)

270-西 (左)

180 - 南 (下)


(c)、设置:

画笔自身的设置:

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

turtle.pencolor()  设置画笔的颜色,参数可以是字符串,如“red”,“green”

turtle.bgcolor('white') 设置屏幕的背景颜色,参数可以是字符串,如“red”,“green”

turtle.speed()  设置画笔移动的速度,参数是速度,数值越大速度越快

全局的控制:

turtle.clear()  清除屏幕中的内容,但是画笔位置不发生改变

turtle.reset()  清除屏幕中的内容,并且画笔回到初始位置


更多的函数大家可以在帮助里或网上找到,这里不做过多介绍。

6、实践例子

import turtle as mypencil

mypencil.Pen()

mypencil.speed(100)

mypencil.pencolor('red')

mypencil.bgcolor('black')

iWidth = 8

arrColors = ['red','purple','white','orange','yellow','blue','green','indigo']

for x in range(1000):

mypencil.pensize(x/13)

mypencil.pencolor(arrColors[x%8])

mypencil.forward(x*0.00703125)

mypencil.right(2)

运行结果如下:


用turtle库画出漂亮的图形,那个谁谁谁,你妈妈叫你来画画了!


大家可以把上面的参数修改下看看效果,也可以画出别的图形。


大家有什么建议和想法,欢迎与我交流。


百度统计