gpt4 book ai didi

python - 如何打印一个turtle()窗口?

转载 作者:行者123 更新时间:2023-12-01 04:06:20 29 4
gpt4 key购买 nike

所以我有这个简单的 turtle 螺旋制作器,我想知道是否有一种方法可以打印出由该程序创建的我的设计副本。

代码:

import turtle
x= float(input("Angle: "))
y= float(input("Step: "))
scale = int(input("Scale: "))
window = turtle.Screen()
window.bgcolor("white")
turtle = turtle.Turtle()
turtle.color("black")
turtle.speed(100)
turtle.pendown()
size=0
for i in range(scale):
size+=y
turtle.left(x)
turtle.forward(size)

例如,如果变量是:

x=121
y=1
scale=300

该程序是这样的: Image

是否可以打印这些窗口,而无需用户手动执行?

最佳答案

您可以将 turtle Tk Canvas 的屏幕截图保存为 postscript 文件,如下所示:

canvas = window.getcanvas()
canvas.postscript(file='/tmp/out.ps')

然后您可以使用subprocess来调用打印命令。以 UNIX 为例,

import subprocess
subprocess.call(['lpr', '/tmp/out.ps'])
<小时/>
import turtle
import random
import subprocess

x = float(input("Angle: "))
y = float(input("Step: "))
scale = int(input("Scale: "))
# x, y, scale = 121, 1, 300
window = turtle.Screen()
window.bgcolor("white")
t = turtle.Turtle()
t.color("black")
t.speed(100)
t.pendown()
size = 0
for i in range(scale):
size += y
t.left(x)
t.forward(size)

canvas = window.getcanvas()
filename = '/tmp/out.ps'
canvas.postscript(file=filename)
subprocess.call(['lpr', filename])
turtle.mainloop()
<小时/>

提示:最好不要将模块名称重新分配给其他值,如

turtle = turtle.Turtle()

这使得从原始 turtle 模块调用任何其他函数变得困难。最好给 Turtle 实例一个新的变量名称,例如 t:

t = turtle.Turtle()

关于python - 如何打印一个turtle()窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35526668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com