如何提高 RawTurtle 的速度?
How do I increase the speed of RawTurtle?
我目前在 tkinter window 中使用嵌入式 turtle canvas。虽然很直观,我需要做的就是将我的乌龟设置为 turtle.RawTurtle(canvas),但有些功能无法正常工作,我也不知道为什么。
t.clear();t.pu();t.speed(0);t.ht();t.tracer(0)
但是我得到错误:
AttributeError: 'RawTurtle' object has no attribute 'tracer'
尽管如此,许多其他功能仍然有效,例如 clear、penup、speed 和 hideturtle。
有没有办法在绘图完成之前禁用屏幕更新,然后使用 RawTurtle 手动更新 canvas?
tracer()
方法是海龟屏幕的方法,不是海龟本身。要访问它,当嵌入在 tkinter window 下时,将 canvas 包裹在海龟屏幕中:
screen = turtle.TurtleScreen(canvas)
t = turtle.RawTurtle(screen)
这应该能让您访问各种屏幕方法。然后您应该可以使用 screen.tracer(0)
关闭绘图更新并使用 screen.update()
显示完成的绘图。更完整的例子:
import tkinter as tk
import turtle
root = tk.Tk()
canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tk.LEFT)
screen = turtle.TurtleScreen(canvas)
t = turtle.RawTurtle(screen)
t.hideturtle()
# t.speed('fastest')
screen.tracer(0)
t.penup()
t.sety(-100)
t.pendown()
t.circle(100)
screen.update()
screen.mainloop()
我目前在 tkinter window 中使用嵌入式 turtle canvas。虽然很直观,我需要做的就是将我的乌龟设置为 turtle.RawTurtle(canvas),但有些功能无法正常工作,我也不知道为什么。
t.clear();t.pu();t.speed(0);t.ht();t.tracer(0)
但是我得到错误:
AttributeError: 'RawTurtle' object has no attribute 'tracer'
尽管如此,许多其他功能仍然有效,例如 clear、penup、speed 和 hideturtle。
有没有办法在绘图完成之前禁用屏幕更新,然后使用 RawTurtle 手动更新 canvas?
tracer()
方法是海龟屏幕的方法,不是海龟本身。要访问它,当嵌入在 tkinter window 下时,将 canvas 包裹在海龟屏幕中:
screen = turtle.TurtleScreen(canvas)
t = turtle.RawTurtle(screen)
这应该能让您访问各种屏幕方法。然后您应该可以使用 screen.tracer(0)
关闭绘图更新并使用 screen.update()
显示完成的绘图。更完整的例子:
import tkinter as tk
import turtle
root = tk.Tk()
canvas = turtle.ScrolledCanvas(root)
canvas.pack(side=tk.LEFT)
screen = turtle.TurtleScreen(canvas)
t = turtle.RawTurtle(screen)
t.hideturtle()
# t.speed('fastest')
screen.tracer(0)
t.penup()
t.sety(-100)
t.pendown()
t.circle(100)
screen.update()
screen.mainloop()