库引用与import

库引用

扩充Python程序功能的方式

  • 使用import保留字完成
  • import <库名>
  • <库名>.<函数名>(<函数参数>)
    1. import turtle
    2. from turtle import forward
    3. turtle.left(45)
    4. forward(150)
    5. turtle.right(135)
    6. forward(300)
    7. turtle.left(135)
    8. forward(150)
    9. turtle.done()

import

使用from和import保留字共同完成

  • from <库名> import <函数名>
  • from <库名> import *
  • <函数名>(<函数参数>)
    1. from turtle import *
    2. left(45)
    3. forward(150)
    4. right(135)
    5. forward(300)
    6. left(135)
    7. forward(150)
    8. done()

使用import和as保留字共同完成

  • import <库名> as <库别名>
  • <库别名>.<函数名>(<函数参数>)
  • 给调用的外部库关联一个更短、更适合自己的名字
    1. import turtle as t
    2. t.left(45)
    3. t.forward(150)
    4. t.right(135)
    5. t.forward(300)
    6. t.left(135)
    7. t.forward(150)
    8. t.done()

turtle画笔控制函数

画笔设置后一直有效,直至下次重新设置

  1. penup() #抬起画笔,海龟在飞行
  2. pendown() #落下画笔,海龟在爬行
  3. pensize() #画笔宽度,海龟的腰围
  4. 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运动控制函数

控制海龟行进:走直线

  1. '''
  2. 向前行进或者后退,海龟走直线
  3. d: 行进距离,可以为负数
  4. '''
  5. turtle.forward(d)

控制海龟行进:走曲线

  1. '''
  2. 根据半径r绘制extent角度的弧形
  3. r: 默认圆心在海龟左侧r距离的位置
  4. extent: 绘制角度,默认是360度整圆
  5. '''
  6. turtle.circle(r, extent=None)
  7. turtle.circle(100)
  8. turtle.circle(-100,90)

image.png image.png

turtle方向控制函数

控制海龟面对方向:绝对角度

  1. '''
  2. 改变行进方向,海龟走角度
  3. angle: 行进方向的绝对角度
  4. '''
  5. turtle.setheading(angle)

控制海龟面对方向:海龟角度

  1. '''
  2. angle: 在海龟当前行进方向上旋转的角度
  3. '''
  4. turtle.left(angle) #海龟向左转
  5. turtle.right(angle) #海龟向右转

课后作业

  1. 画一个五角星。

思考:怎么样画一面国旗?参考图1中的设计图。给国旗加一个旗杆呢?
image.png
图1


turtle refs

想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0, 0) 位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

画布

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。

大小

设置画布的宽(单位像素)、高、背景颜色。

  1. turtle.screensize(800, 600, "green")
  2. turtle.screensize() #返回默认大小(400, 300)

背景

  1. turtle.bgcolor() #背景颜色
  2. turtle.bgpic() #背景图片

位置

width, height 输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例。
(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。

  1. turtle.setup(width=0.6,height=0.6)
  2. 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绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

  1. turtle.hideturtle() #隐藏
  2. turtle.showturtle() #显示

属性

颜色

  1. ‘’‘
  2. 没有参数传入,返回当前画笔颜色。
  3. 传入参数设置画笔颜色:可以是字符串如 "green", "red",也可以是 RGB 3元组。
  4. ’‘’
  5. turtle.pencolor()

宽度

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

速度

  1. turtle.speed(speed) #设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

形状

  1. turtle.shape('turtle') #'arrow', 'turtle', 'circle', 'square' , 'triangle', 'classic'
  2. 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() | 返回最后记录的多边形。 |