【问题标题】:Saving turtle drawing in python在python中保存乌龟绘图
【发布时间】:2022-01-06 23:15:16
【问题描述】:

我想将海龟绘图保存到 .eps 文件中。现在我使用函数 screen.getcanvas().postscript(file="test.eps")

问题在于它不能保存完整的绘图。在我画画之前,我不知道这幅画会有多大。当我画画时,我有最大的 x 和 y 值。上面的函数只是保存绘图,画布上的内容。如果绘图真的很大,它并不完全在画布上,但我想保存完整的绘图。我该怎么做?

【问题讨论】:

标签: python python-turtle


【解决方案1】:

这个的关键是setup()可见的绘图,并使用screensize()来分配你的图像的总后备存储的大小。然后使用postscript() 方法的xywidthheight 参数来捕获您想要的内容。

下面将绘制一个可见的圆圈,一个太大而无法在窗口中看到。然后它将用两个圆圈转储整个图像:

from turtle import Screen, Turtle

screen = Screen()
screen.setup(600, 480)  # what's visible
screen.screensize(1200, 960)  # total backing store

turtle = Turtle()
turtle.hideturtle()
turtle.speed('fastest')

turtle.penup()
turtle.sety(-100)
turtle.pendown()
turtle.circle(100)  # visible

turtle.penup()
turtle.sety(-400)
turtle.pendown()
turtle.circle(400)  # offscreen

canvas = screen.getcanvas()

canvas.postscript(file="test.eps", x=-600, y=-480, width=1200, height=960)

# wait for program to quit, then examine file 'test.eps'

虽然您需要预先分配大型后备存储 (screensize()),但您只需要通过跟踪用户的操作来转储尽可能多的存储。

【讨论】:

  • 非常感谢!我真的很挣扎。开始的 screen.screensize() 甚至不需要,它是在 postcript() 中作为参数的 x 和 y 产生了差异。你是一个真正的救星!
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 2022-12-30
相关资源
最近更新 更多