文章目录
一、库运用与import
对于第三方库,我们采用保留字import
来实现使用,常见使用方式有:
- import <库名>
- from<库名> import<函数名>
- from<库名>import *
- import<库名>as<库别名>
除了第二种,都可以使用该库中全部函数
二、turtle库基本函数
1.setup绘制窗口布局
tuntle.setup(width, height, startx, starty)
- 函数用于设置窗口大小及位置
- 该函数后两个参数缺省值为居中占整个屏幕的一半,属于可选择输入参数。
- 该函数并不是必须使用,很多函数使用的时候会自动设置默认画布(如goto)
2.turtle库中的空间坐标体系与goto函数
turtle 窗口内的坐标系(绝对坐标体系),以窗口正中心为原点(0,0),建立(平面)直角坐标系
turtle.goto(x, y)
goto函数从当前位置直线走向目标坐标(x,y),实例如图
该库中的控制函数都是在绝对坐标系下的方向控制
3.画笔控制函数
画笔设置后一直有效,直至下次重新设置
- turtle.penup() 别名turtle.pu(),抬起画笔,此时移动画笔不会留下痕迹
- turtle.pendown() 别名turtle.pd(),落下画笔,此时移动画笔留下痕迹
- turtle.pensize(width) 别名turtle.width(width),设置画笔宽度
- turtle.pencolor(color) color为颜色名称或RGB值
,设置画笔颜色
其中pencolor(color)的color可以有三种形式
- 颜色字符串:turtle.pencolor("purple")
- RGB小数值:turtle.pencolor(0.63,0.13,0.94)
- RGB元组值:turtle.pencolor((0.63,0.13,0.94))
tips:该库中RGB默认采用小数值 可切换为整数值
turtle.colormode(mode)
- 1.0:RGB小数值模式
- 255:RGB整数值模式
4. (路径)形状控制函数
- turtle.forward(d) 别名 turtle.fd(d) 向前直线行进
d:行进距离,可以为负数 - turtle.backward(d) 别名 turtle.bk(d) 向后直线行进
d:行进距离,可以为负数 - turtle.circle(r, extent=None),根据半径r绘制extent角度的弧形
- r:默认圆心在海龟左侧r距离的位置
- extent:绘制角度,缺省值时为360度整圆
- turtle.setheading(angle0) 别名 turtle.seth(angle0) 改变行进方向为angle0
- angle0:行进方向的绝对角度
- angle0:行进方向的绝对角度
- turtle.left(angle)向左转; turtle.right(angle) 向右转
angle:当前行进方向上旋转的角度(与seth中含义不同)
tips:该库函数默认初始朝向为X轴正方向
三、基本使用与实验
1.彩虹小蛇的简易绘制
import turtle
turtle.penup()
turtle.bk(300)
turtle.seth(40)
turtle.pendown()
turtle.pensize(20)
turtle.colormode(255)
turtle.pencolor(20,70,150)
for i in range(5):
turtle.circle(-40,80)
turtle.circle(40,80)
turtle.pencolor(20+40*i, 100+10*i, 200+5*i)
turtle.circle(40,120)
turtle.done()
运行结果如图:
2.绘制奥运五环图
import turtle
turtle. pensize (10)
turtle. color("blue")
turtle. penup()
turtle. goto(-110,-25)
turtle. pendown ()
turtle. circle(45)
turtle. color("black")
turtle. penup()
turtle. goto (0,-25)
turtle. pendown ()
turtle. circle(45)
turtle. color("red")
turtle. penup()
turtle. goto(110,-25)
turtle. pendown()
turtle. circle(45)
turtle. color("yellow")
turtle. penup()
turtle. goto (-55,-75)
turtle. pendown ()
turtle. circle (45)
turtle. color("green")
turtle. penup()
turtle. goto (55,-75)
turtle. pendown ()
turtle. circle (45)
turtle.done()
3.笑脸绘制
import turtle
turtle.penup()
turtle.bk(150)
turtle.seth(-90)
turtle.pensize(10)
turtle.pendown()
turtle.circle(150)
for i in range(2):
turtle.penup()
turtle.seth(0)
turtle.fd(50)
turtle.seth(90)
turtle.pendown()
turtle.circle(-30, 180)
turtle.penup()
turtle.seth(180)
turtle.fd(25)
turtle.seth(270)
turtle.fd(25)
turtle.pendown()
turtle.circle(-60, 180)
turtle.done()
4.正螺旋线绘制
import turtle
turtle. speed("fastest")
turtle. pensize(2)
for x in range(100):
turtle. forward (2*x)
turtle. left (90)
5. 彩色螺旋线绘制
或者在4的基础上稍加修改
import turtle
turtle.pensize(2)
turtle. speed("fastest")
colors = ["red", "yellow",'purple','blue']
for x in range(100):
turtle.pencolor(colors[x%4])
turtle.forward(2*x)
turtle.left(91)
turtle.done()