如何从龟图像中删除箭头状光标

时间:2019-04-08 20:02:06

标签: python python-3.x turtle-graphics

我创建了一个多边形,例如使用Turtle,并将其保存到eps文件中,但是像箭头一样的光标保留在图像中。如何摆脱所有游标?

我尝试了hideturtle(),认为“ turtle”对于任何游标都是通用的。

polygon = turtle.Turtle()
num_sides = 6
side_length = 70
angle = 360.0 / num_sides 
for i in range(num_sides):
    polygon.forward(side_length)
    polygon.right(angle)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="hex_example.eps")

1 个答案:

答案 0 :(得分:1)

这是很微妙的,但是这里有。您可以通过以下方法解决此问题:

ts = turtle.getscreen()

使用以下任一方法:

ts = polygon.getscreen()

或:

ts = turtle.Screen()

并放回您的:

polygon.hideturtle()

问题在于getscreen() turtle 方法,因此,当您使用模块名称turtle.getscreen()调用它时,它将应用于 default 龟。它不仅可以获取屏幕,还可以实例化默认乌龟。您在PostScript图像中看到的乌龟不是polygon,而是未修饰的默认乌龟(您的polygon 返回回到原始位置,默认乌龟从起始位置开始)。通过切换到以上任一备用调用来获取屏幕,您无需实例化默认的乌龟。完整的解决方案:

from turtle import Screen, Turtle

num_sides = 6
side_length = 70
angle = 360.0 / num_sides 

screen = Screen()

polygon = Turtle()

for _ in range(num_sides):
    polygon.forward(side_length)
    polygon.right(angle)

polygon.hideturtle()

screen.getcanvas().postscript(file="hex_example.eps")

这是我敦促人们使用以下方法进口乌龟的典型情况:

from turtle import Screen, Turtle

因为它只给您 用于乌龟的面向对象 API,而不是像import turtlefrom turtle import *这样的其他导入文件,它们会留下面向对象 API和功能 API均处于活动状态。两者都活跃只会使事情变得混乱。

相关问题