小海龟--turtle模块

绘图窗口上,默认有一个原点(0,0)在画布正中间的坐标轴,并且默认的朝向是右侧(X轴正方向)的小海龟。

命令说明

forward(d) 向前移动d长度
backward(d) 向后移动d长度
right(a) 向右转动多少度
left(a) 向左转动多少度
goto(x,y) 移动到坐标为(x,y)的位置

speed(speed) 笔画绘制的速度[0,10]
up() 笔画抬起
down() 笔画绘制
setheading(d) 改变还贵的朝向
pensize() 笔画宽度
pencolor(colorstr) 笔画颜色
reset() 恢复所有设置,清空窗口,重置turtle状态
clear() 清空窗口,但不重置turtle状态
circle(r,steps=e) 绘制一个圆形,r为半径,e为次数(可不写,不写就是一个完整的圆)
begin_fill() 开始填充
fillcolor(colorstr) 填充颜色
end_fill() 结束填充

done() #程序继续运行
undo() #撤销上一次动作
hideturtle() #隐藏海龟
showturtle() #显示海龟
screensize(x,y) #屏幕尺寸

默认规则

"standard"模式逆时针 "logo"模式顺时针
0 - east 0 - north
90 - north 90 - east
180 - west 180 - south
270 - south 270 - west

如下图“standard”模式时(默认0时表示x方向向右即向东);“logo”模式时(默认0时表示y方向向上即向北)
y“logo”时
^
|
|
|
(0,0)——————> x“standard”时

运动命令

import turtle  #外部库必须先导入
turtle.forward(100) #或turtle.fd(100)
#从原点位置,向前移动100单位(默认向右)

小海龟--turtle模块_第1张图片

turtle.backward(200) #或turtle.back(200) 或turtle.bk(200)
#在上图基础上,后退200个单位。小海龟方向还是向右

小海龟--turtle模块_第2张图片

turtle.right(45) # turtle.rt(45)
#向右转动多少度,与上图相比,小海龟方向发生变化。

小海龟--turtle模块_第3张图片

turtle.left(90) #或turtle.lt(90)
#向左转动多少度

小海龟--turtle模块_第4张图片

turtle.goto(60,30) #或turtle.setpos(60,30) 或turtle.setposition(60,30)
#移动到绝对位置,参数为(x轴,y轴)

小海龟--turtle模块_第5张图片

 turtle.setx(15)
 #y轴不变,更改x轴坐标(移动坐标点,而不是长度)

小海龟--turtle模块_第6张图片

 turtle.sety(15)
 #x轴不变,更改y轴坐标(移动坐标点,而不是长度)

小海龟--turtle模块_第7张图片

 turtle.seth(90) #或turtle.setheading(to_angle)
 #直接将小海龟的朝向转到90度,standard模式下,90度即指向北方

小海龟--turtle模块_第8张图片

 turtle.home()
 # 将位置和方向恢复到初始状态,位置初始坐标为(0,0),方向初始为("standard"模式为right向右即东,"logo"模式是up向上即北)
 # 如下图,小海龟回到原点位置,方向向右的初始状态

小海龟--turtle模块_第9张图片

圆和多边形的画法

turtle.circle(100, extent=None, steps=None)
 # 如下图,小海龟在的位置是原点位置,注意circle命令并不是以原点为中心画圆。而是以原点为起点换一个半径为100的圆
 #radius(a number,圆半径,为正数则逆时针画,为负数则顺时针画,方向随着轨迹的变化而变化)
 #extent(a number or None,一个角度,决定哪部分圆圈被绘制,不提供extent表示画完整的圆)
 #steps(an integer or None,指定半径radius前提下,完成extent的角度时,分了几步,如画正5边形时

小海龟--turtle模块_第10张图片

turtle.circle(100, extent=90, steps=None)
#extent是一个角度,一个圆是360度,90度即1/4个圆

小海龟--turtle模块_第11张图片

turtle.circle(100, None, 10)
#注意:None的N要大写,

小海龟--turtle模块_第12张图片

#点的画法

turtle.dot()  #按给定直径size画圆点
turtle.fd(50)
turtle.dot(5, "blue") # 以直径为5画蓝色圆点
turtle.fd(50)
turtle.dot(20, "red") # 以直径为20画红色圆点
turtle.fd(50)
# turtle.dot(size=None, *color)

小海龟--turtle模块_第13张图片

箭头控制

turtle.stamp()是在当前位置拷贝一份此时箭头的形状,返回一个stamp_id(int型),请观察下面2种方式的不同。

turtle.color("red")
turtle.fd(50)
turtle.stamp()
turtle.fd(50)
turtle.stamp()
turtle.fd(50)
turtle.color("red")
turtle.fd(50)
turtle.fd(50)
turtle.fd(50)

小海龟--turtle模块_第14张图片

小海龟--turtle模块_第15张图片

turtle.clearstamps(n=None),n为None时表示删除所有拷贝的箭头形状;为0不删除;n > 0 表示删除前n个,n < 0 表示删除后n个

stamp_id = turtle.stamp()
turtle.clearstamp(stamp_id)用来删除指定stamp_id的箭头形状

turtle.clearstamps(1)      
#删除前一个复制的箭头  

小海龟--turtle模块_第16张图片

turtle.clearstamps(2)      
#删除前两个复制的箭头  

小海龟--turtle模块_第17张图片

turtle.clearstamps(-2)      
#删除后面两个复制的箭头  

小海龟--turtle模块_第18张图片

turtle.clearstamps()      
#删除全部复制的箭头  

小海龟--turtle模块_第19张图片

你可能感兴趣的:(Python知识树)