库引用与import
库引用
扩充Python程序功能的方式
- 使用import保留字完成
- import <库名>
- <库名>.<函数名>(<函数参数>)
import turtle
from turtle import forward
turtle.left(45)
forward(150)
turtle.right(135)
forward(300)
turtle.left(135)
forward(150)
turtle.done()
import
使用from和import保留字共同完成
- from <库名> import <函数名>
- from <库名> import *
- <函数名>(<函数参数>)
from turtle import *
left(45)
forward(150)
right(135)
forward(300)
left(135)
forward(150)
done()
使用import和as保留字共同完成
- import <库名> as <库别名>
- <库别名>.<函数名>(<函数参数>)
- 给调用的外部库关联一个更短、更适合自己的名字
import turtle as t
t.left(45)
t.forward(150)
t.right(135)
t.forward(300)
t.left(135)
t.forward(150)
t.done()
turtle画笔控制函数
画笔设置后一直有效,直至下次重新设置
penup() #抬起画笔,海龟在飞行
pendown() #落下画笔,海龟在爬行
pensize() #画笔宽度,海龟的腰围
pencolor() #画笔颜色,海龟在涂装
pencolor(color)
的 color
可以有三种形式
- 颜色字符串:
turtle.pencolor("purple")
- RGB的小数值:
turtle.pencolor(0.63, 0.13, 0.94)
- RGB的元组值:
turtle.pencolor((0.63, 0.13, 0.94))
turtle运动控制函数
控制海龟行进:走直线
'''
向前行进或者后退,海龟走直线
d: 行进距离,可以为负数
'''
turtle.forward(d)
控制海龟行进:走曲线
'''
根据半径r绘制extent角度的弧形
r: 默认圆心在海龟左侧r距离的位置
extent: 绘制角度,默认是360度整圆
'''
turtle.circle(r, extent=None)
turtle.circle(100)
turtle.circle(-100,90)
turtle方向控制函数
控制海龟面对方向:绝对角度
'''
改变行进方向,海龟走角度
angle: 行进方向的绝对角度
'''
turtle.setheading(angle)
控制海龟面对方向:海龟角度
'''
angle: 在海龟当前行进方向上旋转的角度
'''
turtle.left(angle) #海龟向左转
turtle.right(angle) #海龟向右转
课后作业
- 画一个五角星。
思考:怎么样画一面国旗?参考图1中的设计图。给国旗加一个旗杆呢?
图1
turtle refs
想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0, 0) 位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
画布
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
大小
设置画布的宽(单位像素)、高、背景颜色。
turtle.screensize(800, 600, "green")
turtle.screensize() #返回默认大小(400, 300)
背景
turtle.bgcolor() #背景颜色
turtle.bgpic() #背景图片
位置
width, height 输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例。
(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。
turtle.setup(width=0.6,height=0.6)
turtle.setup(width=800,height=800, startx=100, starty=100)
动画
delay() 延迟
设置或返回以毫秒数表示的延迟值 delay。(这约等于连续两次画布刷新的间隔时间。) 绘图延迟越长,动画速度越慢。
tracer() 追踪
启用/禁用海龟动画并设置刷新图形的延迟时间。
update() 更新
执行一次 TurtleScreen 刷新。在禁用追踪时使用。
事件
onkey() 当键盘按下并释放
绑定 fun 指定的函数到按键释放事件。
onkeypress() 当键盘按下
绑定 fun 指定的函数到指定键的按下事件。
onclick() 当点击屏幕
绑定 fun 指定的函数到鼠标点击屏幕事件。
ontimer() 当达到定时
安装一个计时器,在 t 毫秒后调用 fun 函数。
输入
textinput() 文本输入
弹出一个对话框窗口用来输入一个字符串。
numinput() 数字输入
弹出一个对话框窗口用来输入一个数值。
画笔
状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
turtle.hideturtle() #隐藏
turtle.showturtle() #显示
属性
颜色
‘’‘
没有参数传入,返回当前画笔颜色。
传入参数设置画笔颜色:可以是字符串如 "green", "red",也可以是 RGB 3元组。
’‘’
turtle.pencolor()
宽度
turtle.pensize() #设置画笔的宽度;
速度
turtle.speed(speed) #设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
形状
turtle.shape('turtle') #'arrow', 'turtle', 'circle', 'square' , 'triangle', 'classic'
turtle.shapsize(width, length, outline)
命令
运动命令
命令 | 说明 |
---|---|
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.setx(x) | 设置海龟的横坐标为 x,纵坐标保持不变。 |
turtle.sety(y) | 设置海龟的横坐标为 y,横坐标保持不变。 |
turtle.penup() | 提起笔移动,不绘制图形,用于另起一个地方绘制 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
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.clear() | 清空turtle窗口,但是turtle的位置和状态不会改变 |
turtle.reset() | 清空窗口,重置turtle状态为起始状态 |
turtle.undo() | 撤销上一个turtle动作 |
turtle.isvisible() | 返回当前turtle是否可见 |
turtle.stamp() | 复制当前图形 |
turtle.write(s) | 写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项 |
其他
命令 | 说明 |
---|---|
turtle.mainloop()或turtle.done() | 启动事件循环 -调用Tkinter的mainloop函数。 必须是乌龟图形程序中的最后一个语句。 |
turtle.mode(mode=None) | 设置乌龟模式(“standard”,“logo”或“world”)并执行重置。如果没有给出模式,则返回当前模式。 |
模式 初始龟标题 正角度
standard 向右(东) 逆时针
logo 向上(北) 顺时针
|
| turtle.delay(delay=None) | 设置或返回以毫秒为单位的绘图延迟。 |
| turtle.begin_poly() | 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。 |
| turtle.end_poly() | 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。 |
| turtle.get_poly() | 返回最后记录的多边形。 |