是否可以在 Turtle 中绘制一些东西,将绘制参数保存在文件或 db 中,退出应用程序并使用目前绘制的图片重新打开它?
1 回答
0
如果有人感兴趣,我现在已经解决了我的问题,如下所示:由于我还是 python 的新手,我仍然对包装函数不太满意。每次运行时使用 Turtle 绘制并保存为 PNG 的图形。所以现在我有了我在哪里以及如何继续的概述,如果我关闭应用程序
import turtle
from turtle import ScrolledCanvas, RawTurtle, TurtleScreen
from random import randint
from tkinter import *
from PIL import Image
import time
root = Tk()
cnt = 0
canvas = Canvas(root, width=800, height=800)
canvas.pack()
myPen = RawTurtle(canvas)
myPen.speed("fastest")
def drawTree(branchLen, t, size):
global cnt
cnt += 1
makePicture(myPen, cnt)
if branchLen > 5:
if branchLen < 20:
t.color("green")
if size < 0:
size = 1
rsize = size
else:
rsize = size + 1
myPen.pensize(size)
tangle = 20
t.forward(branchLen)
t.right(tangle)
drawTree(branchLen - randint(5, 15), t, size - 1)
t.left(2 * tangle)
drawTree(branchLen - randint(5, 15), t, size - 1)
t.right(tangle)
t.backward(branchLen)
myPen.pensize(rsize)
t.color("black")
def makePicture(myPen, cnt):
nameeps = "tree.eps"
ts = myPen.getscreen()
ts.getcanvas().postscript(file=nameeps)
saveImg(nameeps, cnt)
def saveImg(nameeps,cnt):
image = "tree{}.png".format(cnt)
canvas.postscript(file=nameeps, colormode='color')
imgNew = Image.open(nameeps)
imgNew.convert("RGBA")
imgNew.thumbnail((2000,2000), Image.ANTIALIAS)
imgNew.save(image, quality=95)
myPen.hideturtle()
myPen.penup()
size = 10
myPen.pensize(size)
myPen.goto(-50, -300)
myPen.pendown()
myPen.left(90)
drawTree(100, myPen, size)
root.mainloop()
这只是我尝试过的示例代码
于 2020-01-19T13:00:16.267 回答