高一信息技术(人教中图版)必修一
2.3 程序设计基本知识之Python语言中turtle(海龟作图)库的应用
课程内容:
turtle画布与坐标系
goto()方法
penup()方法
pendown()方法
二、学习目标
了解平面直角坐标系各个点坐标值的表示方法、以及利用坐标的知识绘制出小呆
三 、知识点
1、turtle画布与坐标系
在同一平面互相垂直且有公共原点的两条数轴构成平面直角坐标系。在坐标系中,水平方向的轴都称为x轴,垂直方向的轴都称为y轴。
它们相交于O点,在这一个点里,x轴的值为0,y轴的值也为0,所以它们的交点O的坐标就为(0,0),我们平时称(0,0)为坐标原点。
turtle画布以像素为长度。距离为1称为一个单位长度,就像图中的0到1,3到4,-4到-3都是一个单位长度。
turtle绘图模块的画布,就像一个平面直角坐标系,画布的每一个点的位置都可以用坐标表示,画布的中心点就等于坐标系的中心点(0,0)。
注意哦,为了美观,坐标系在画布中并不会显示出来。
2、goto()方法
turtle绘图模块的goto方法可以使画笔移动到我们指定的位置,和forward的方法一样,需要在括号里设定线段的长度,我们需要在goto的括号里指定坐标(x, y)
goto()方法和forward()方法一样,都是设置画笔的移动,不同的是,goto()方法不用依赖画笔的朝向,它是由起点(画笔的当前位置)和终点位置(goto方法里设置的x和y)的坐标决定的,会直接由起点坐标移动到终点坐标。由于turtle模块的画笔默认朝下的(即画笔挨着画布),所以移动的过程中就会画出一条线出来。
3、penup()方法
我们前面说goto方法时,说到了画笔默认是朝下的。turtle绘图模块的penup方法,可以使画笔抬起来。在画笔抬起的状态下,即使调用了forward或者goto方法移动了画笔,也不会留下痕迹。
penup()方法括号里不设置参数。
penup()方法一般会和pendown()方法配合使用。
4、pendown()方法
turtle绘图模块的pendown方法,可以让画笔落下,使画笔恢复绘图状态。
pendown()方法括号里不设置参数。
通常pendown方法用在penup方法之后。
四、延伸
对于数学课程还没有学到平面直角坐标系的同学,可以链接到百度百科,查看有关平面直角坐标系的相关解释:
在用turtle绘画时,画笔的第一笔落笔点默认是在画布中心,画笔朝东(向右),但是有时需要绘制一些不对称的图,画笔落在画布中心会使结果偏离中心或画出画布。所以需要移动画笔的初始落笔点。
这里有两个方法:
goto()函数
turtle.goto(x,y)
1、turtle规定以中心为原点(0,0),而turtle.goto(x,y)表示将原点向右移动x个像素,向上移动y个像素。
其中,x,y可以为负数。
提笔移动
turtle函数绘画时,有两个基本动作,提笔和落笔。提笔时,只移动画笔,但不会留下痕迹;而落笔则会画出痕迹。
如下的代码:
将画笔向下移动100个像素:
首先,因为画笔初始向右,turtle.left(90)为将笔端向左旋转90度,此时向上;
turtle.up()为提笔,即之后的动作只会移动笔端,而不会画出痕迹;
turtle.backward(100)为向后移动100像素,即向下移动100像素;
turtle.down()为落笔,即之后的动作会留下痕迹;
turtle.right(90)为将笔端向右旋转90度,即又恢复成向右,即从此开始才开始落笔绘画。
turtle.left(90)
turtle.up()
turtle.backward(100)
turtle.down()
turtle.right(90)
上述的是一种方法,上面的效果还有很多种操作,所以,要向移动笔端,则提笔空画即可。
turtle库画笔状态控制函数
函数 描述
penup() 提起画笔,与pendown()配对使用
pendwon() 放下画笔
pensize(width) 设置画笔线条的粗细为指定大小
turtle库的画笔运动的函数
函数 描述
forward() 沿着当前方向前进指定距离
backward() 沿着当前相反方向后退指定距离
right(angle) 向右旋转angle角度
left(angle) 向左旋转angle角度
goto(x, y) 移动到绝对坐标(x, y)处
setx() 将当前x轴移动到指定位置
sety() 将当前y轴移动到指定位置
setheading(angle) 设置当前朝向为angle的角度
home() 设置当前画笔位置为原点,朝向东
circle(radius,extent=None,steps=None) #画出圆弧;#参数分别为半径、弧度和画圆弧线段的数量#弧度默认认为360度,将画出一个圆;#弧度为负数,则反方向画弧
dot(r, color) 绘制一个指定半径r和颜色color的圆点
undo() 撤销画笔最后一步动作
speed() 设置的绘制速度,参数为0 - 10之间
turtle库的控制画笔和字体函数
函数 描述
color() 设置画笔的颜色
begin_fill() 填充图形前,调用该方法
end_fill() 填充图形结束
filling() 返回填充的状态,True为填充,False为未填充
clear() 清空当前窗口,但不改变当前画笔的位置
reset() 清空当前窗口,并重置位置状态为默认值
screensize() 设置画面的长和宽
hideturtle() 隐藏画笔的turtle形状
showturtle() 显示画笔的turtle形状
isvisible() 如果turtle可见,则返回Ture
write(str, font = None) 输出font字体的字符串