python的标准库——turtle

参考:
https://blog.csdn.net/zengxiantao1994/article/details/76588580

turtle介绍

turtle是标准库,是一种入门级的图形绘制函数库。
为什么叫turtle呢?你可以想象有一只海龟在画布上游走,它的足迹形成了要绘制的图形。

标准库和第三方库的区别

标准库:随解释器直接安装到操作系统中的功能模块。
第三方库:需要经过安装才能使用的功能模块。
库Library、包Package、模块Module,都统称为模块。

turtle绘图窗体

turtle的setup方法turtle.setup(startx,starty,width,height)可以用来指定画布的长宽,(startx,starty)用来指定画布的左上角的坐标位置。
这里写图片描述
若方法setup只有2个参数,则2个参数分别指定画布的宽度和高度即turtle.setup(width,height),此时窗口位于屏幕中心。
值得注意的是,在一开始turtle位于画布的正中心,而画布的正中心也就是原点,即(0,0)而上图中蓝点的位置(0,0)并不是turtle所处的原点,蓝点是屏幕坐标系中的原点,而turtle所处的原点是画布的原点,画布的原点在黑点的位置,也就是画布的正中心。

turtle空间坐标与改变turtle的位置

turtle的空间坐标如下图所示,默认turtle位于画布的原点,并且朝向x轴的正方向。
这里写图片描述

goto方法

使用turtle的goto方法能够指定绝对坐标来改变turtle的位置,并且turtle移动的路径都会显示在画布上。当然还有如下面fd()和bk()方法使用相对坐标来移动turtle的方法,此时turtle每次移动都会依赖上次turtle所处的位置和朝向(方向)。

turtle.forward(d) 的别名为 turtle.fd(d) ;使turtle向前移动d个像素
turtle.backward(d)的别名为 turtle.bk(d)。使turtle向后移动d个像素。
当然d也可以为负数,此时就相当于在相反方向移动|d|个像素的距离。
————————————————————————————————————
下面的代码展示了如何使用绝对坐标来绘制一幅图形。

# 使用绝对坐标来绘制图形
import turtle as tl
tl.goto(100,100)
tl.goto(100,-100)
tl.goto(-100,-100)
tl.goto(-100,100)
tl.goto(0,0)
#使画布不闪现,一直显示
tl.done()

上面的代码的效果其实就是下图所展示的。
这里写图片描述
下面再展示一幅图像,它是站在turtle的角度来定义一些方位的。
这里写图片描述

turtle的角度坐标系与改变turtle的方向

那如果想使用角度来改变turtle的朝向呢?turtle在画布上的角度又是什么呢?
这里写图片描述
实际上上面的绝对角度是为了说明seth方法的,turtle.seth(angle)就是使用绝对角度来改变turtle的朝向的。当然我们也可以通过下面的方法使用相对角度来改变turtle的朝向。
turtle.left(angle)
turtle.right(angle)
需要注意的是无论是seth还是left,right方法都只是改变了turtle的方向,并没有使turtle进行移动。

turtle语法

画笔控制函数

turtle.penup() 别名 turtle.pu():抬起画笔,可以想象为turtle已经离开画布(飞行),因为turtle在飞行所以其在飞的过程中并不在画布上形成路径。
turtle.penup()只是在表示了画笔飞起了,要使画笔移动,还是需要使用turtle.fd(d)之类的移动画笔的方法。
turtle.down() 别名 turtle.pd():落下画笔,可以想象为海龟在爬行。
上面的2个语句其实就是为了移动turtle到另一个地方,并在这移动的过程中不在画布上留下“足迹”。即要重新在一个位置开始“画”。

画笔设置函数(颜色,大小)

turtle.pensize(width) 用来设置画笔宽度,即turtle的腰围。
turtle.pencolor(color)用来修改turtle颜色的,color为颜色字符串或rgb值。
turtle.pencolor(“purple”)
RGB的小数值:turtle.pencolor(0.63,0.13,0.94)
RGB的元组值:turtle.pencolor((0.63,0.13,0.94))

circle方法

circle方法既指定了turtle的方向又指定了画多大角度的弧。
turtle.circle(radius, extent=None, steps=None)
描述:以给定半径画圆
参数说明:
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。

circle(50) # 整圆;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圆

circle方法中半径为正负所带来的区别如下图:
下图表示的是turtle在同一个位置,使用了同样大小的半径,但符号不同所带的不同。此时我们忽略弧度所带来的差异,明显发现画圆的方向不一样。即:
半径为正,表示圆心在turtle的左边正方向,并画圆;
半径为负,表示圆心在turtle的右边正方向,并画圆。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/chaolei3/article/details/79694697