📜  如何在Python中创建自定义海龟形状?

📅  最后修改于: 2022-05-13 01:55:06.968000             🧑  作者: Mango

如何在Python中创建自定义海龟形状?

在 Turtle 中,默认情况下,我们有一个用于在画布上绘图的箭头形光标。这可以更改为其他一些预定义的形状,或者我们也可以创建自定义形状并将其注册为名称。不仅如此,我们甚至可以使用gif格式的图片来代替我们的光标。

将光标更改为预定义的形状

shape()函数用于设置光标的形状。预定义的形状包括turtlearrowcirclesquaretriangle

Python3
import turtle
 
# turtle object
c_turtle = turtle.Turtle()
   
# changing the cursor
# shape to circle
c_turtle.shape('circle')


Python3
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')


Python3
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')


输出 :

注册新形状

turtle 模块有register_shape()函数用于注册自定义形状。

shape 参数的 n 元组参数表示 n 边多边形的每个角的相对位置。让我们尝试创建一个简单的菱形来理解这一点。
考虑这颗钻石,对角线长度 = 20,位于笛卡尔平面中:

要创建这个形状,我们需要按顺时针顺序传递这些坐标。

Python3

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格式。

Python3

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')
输出 :