如何在Python Turtle中创建自定义形状
在Turtle中,默认情况下,我们有一个箭头状的光标用于在画布上绘图。这可以改成其他预定义的形状,或者我们也可以创建一个自定义的形状,并以一个名字注册。不仅如此,我们甚至可以使用gif格式的图片来代替我们的光标。
将光标改成预定义的形状
shape()函数用于设置光标的形状。预定义的形状包括龟形、箭头、圆形、方形和三角形。
import turtle
# turtle object
c_turtle = turtle.Turtle()
# changing the cursor
# shape to circle
c_turtle.shape('circle')
输出 :
注册新的形状
Turtle模块有register_shape()函数用于注册自定义形状。
语法: turtle.register_shape(name, shape)
参数 :
- name : 一个字符串–要注册的形状的名称。
-
shape : 一个包含自定义形状的坐标的元组。
形状参数的n元组参数,表示一个n边多边形的每个角的相对位置。让我们试着创建一个简单的钻石形状来理解这一点。
考虑这个钻石,对角线的长度=20,在笛卡尔平面上。
为了创建这个形状,我们需要按顺时针顺序传递这些坐标。
import turtle
# turtle object
dimond_turtle = turtle.Turtle()
# the coordinates
# of each corner
shape =((0, 0), (10, 10), (20, 0), (10, -10))
# registering the new shape
turtle.register_shape('diamond', shape)
# changing the shape to 'diamond'
dimond_turtle.shape('diamond')
输出 :
使用图像的Turtle光标
要使用图片作为光标,我们需要把图片文件的路径作为参数传给register_shape()。注意,这个图片必须是gif格式的。
import turtle
# turtle object
img_turtle = turtle.Turtle()
# registering the image
# as a new shape
turtle.register_shape('example.gif')
# setting the image as cursor
img_turtle.shape('example.gif')