turtle

基本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import turtle


# turtle.bgpic("file")#背景图片设置
turtle.screensize(800,600,"white")#画布大小
turtle.setup(width=800, height=600, startx=0, starty=0)
p=turtle.Turtle()#创建画笔对象
# #画五角星
# for i in range(5):
# p.forward(200)
# p.left(180-180/5)

# #坐标法移动画笔
# p.forward(1000)
# p.goto(0,0)
# p.circle(50)

turtle.done()

turtle.title()

1
2
3
4
5
6
7
8
9
10
11
# import package
import turtle


# make turtle object
# and set size
sc = turtle.Screen()
sc.setup(400,300)

# set turtle screen title
turtle.title("Turtle Window For GFG")
image-20230424210438988

turtle.shape()

带有名称的形状必须存在于Turtle屏的形状字典中。最初,有以下多边形形状:”arrow”、”Turtle”、”circle”、”square”、”triangle”、”classic”。这些图像显示如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# import package
import turtle


# for default shape
turtle.forward(100)

# for circle shape
turtle.shape("circle")
turtle.right(60)
turtle.forward(100)

# for triangle shape
turtle.shape("triangle")
turtle.right(60)
turtle.forward(100)

# for square shape
turtle.shape("square")
turtle.right(60)
turtle.forward(100)

# for arrow shape
turtle.shape("arrow")
turtle.right(60)
turtle.forward(100)

# for turtle shape
turtle.shape("turtle")
turtle.right(60)
turtle.forward(100)
20221008093214-7

turtle.stamp()

1
2
3
4
5
6
7
8
9
10
11
12
# import package
import turtle

# forward turtle by 100
turtle.forward(100)

# print the turtle shape
turtle.stamp()

# and then continue
# forward turtle by 100
turtle.forward(100)

turtle.clearstamp()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# import package
import turtle


# set turtle speed to slowest
# for better understandings
turtle.speed(1)

# motion with stamps
# and their ids
turtle.forward(50)
id1 = turtle.stamp()

turtle.forward(50)
id2 = turtle.stamp()

turtle.forward(50)
id3 = turtle.stamp()

# hide the turtle to
# clarify stamps
turtle.ht()

# clear the stamps
# of id : id1 and id3
turtle.clearstamp(id1)
turtle.clearstamp(id3)
20221007105117-1

turtle.clearstamps()

语法:turtle.clearstampsturtle.clearstamps(n=None)

可选的参数: n – 一个整数

  • 如果n是无,则删除pen的所有邮票。
  • 否则,如果n>0,则删除前n个邮票
  • 否则,如果n<0,则删除最后的n个邮票。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# import package
import turtle


# set turtle speed to slowest
# for better understandings
turtle.speed(1)

# motion with stamps
turtle.forward(50)
turtle.stamp()
turtle.forward(50)
turtle.stamp()
turtle.forward(50)
turtle.stamp()

# hide the turtle to
# clarify stamps
turtle.ht()

# clear the all stamps
turtle.clearstamps()

turtle.write()

1
turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))
参数 描述
arg Info,这将被写入TurtleScreen中。
move 真/假
align “左”、”中 “或 “右 “其中一个字串
font 一个元组(字体名称、字体大小、字体类型)。
1
2
3
4
5
# import package
import turtle

# write text
turtle.write("GeeksForGeeks")

turtle.ontimer()

该函数用于安装一个定时器,在t毫秒后调用fun。

1
turtle.ontimer(fun, t=0)

参数:

参数 描述
fun 一个没有参数的函数
t 一个数字 >= 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# import packages
import turtle
import random

# global colors
col = ['red', 'yellow', 'green', 'blue',
'white', 'black', 'orange', 'pink']

# method to call on timer
def fxn():
global col
ind = random.randint(0, 7)

# set background color of the
# turtle screen randomly
sc.bgcolor(col[ind])


# set screen
sc = turtle.Screen()
sc.setup(400, 300)

# loop for timer
for i in range(10):
turtle.ontimer(fxn, t=400*(i+1))
20221008093201-1

turtle.speed()

1
turtle.speed(speed=None)
  • Turtle的速度在0-10的范围内。
  • 如果输入的是一个大于10或小于0.5的数字,则速度被设置为0。
  • 速度字符串以如下方式映射到速度值。
  • ‘最快’ : 0
  • ‘快速’ : 10
  • ‘正常’ : 6
  • ‘慢’ : 3
  • ‘最慢’ : 1
  • 速度从1到10,执行越来越快的画线和Turtle转动的动画
1
2
3
4
5
6
7
8
# import package
import turtle

# slowest speed
turtle.speed(1)

# turtle movement
turtle.forward(150)

turtle.towards()

这个函数用来返回从龟位到由x、y指定的位置的直线与龟的起始方向之间的角度。

语法 :

1
turtle.towards(x, y=None)

turtle.tracer()

语法: turtle.tracer(n=None, delay=None)

参数:

  • n:如果给定了n,只有每一个n次的常规屏幕更新才真正被执行。
  • delay:设置延迟值

turtle.seth()

绝对方向

image-20230425042138765

turtle.isdown()

如果画笔落下返回 True,如果画笔抬起返回 False

1
2
3
4
5
6
>>> turtle.penup()
>>> turtle.isdown()
False
>>> turtle.pendown()
>>> turtle.isdown()
True