如何保存和恢复turtle-graphics draw parametersinto/from一个文件?
How to save and restore turtle-graphics draw parameters into/from a file?
是否可以在 Turtle 中绘制一些东西,将绘制参数保存在文件或数据库中,退出应用程序并使用目前绘制的图片重新打开它?
如果有人感兴趣,我现在已经解决了我的问题如下:
因为我还是 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()
这只是我尝试过的示例代码
是否可以在 Turtle 中绘制一些东西,将绘制参数保存在文件或数据库中,退出应用程序并使用目前绘制的图片重新打开它?
如果有人感兴趣,我现在已经解决了我的问题如下: 因为我还是 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()
这只是我尝试过的示例代码