Вы можете установить виртуальные координаты с помощью setworldcoordinates()
, чтобы сохранить беллетристику 640 x 480 независимо от фактического размера окна:
import tkinter as tk
from turtle import RawTurtle, TurtleScreen, ScrolledCanvas
width, height = 640, 480
root = tk.Tk()
# We're not scrolling but ScrolledCanvas has useful features
canvas = ScrolledCanvas(root)
canvas.pack(fill=tk.BOTH, expand=tk.YES)
screen = TurtleScreen(canvas)
root.state('zoomed') # when you call this matters, be careful
screen.setworldcoordinates(-width / 2, -height / 2, width / 2 - 1, height / 2 - 1)
turtle = RawTurtle(screen)
turtle.penup()
turtle.sety(-230)
turtle.pendown()
turtle.circle(230) # circle that nearly fills our virtual screen
screen.mainloop()
Однако ваш круг может выглядеть как овал, когда вы отобразилиодин прямоугольник формы на другой и потерял исходное соотношение сторон.Если вы хотите увеличить одно из ваших измерений, чтобы сохранить соотношение сторон, увеличьте приведенный выше код с помощью следующего вычисления:
# ...
root.state('zoomed') # when you call this matters, be careful
window_width, window_height = screen.window_width(), screen.window_height()
if window_width / width < window_height / height:
height = window_height / (window_width / width)
else:
width = window_width / (window_height / height)
screen.setworldcoordinates(-width / 2, -height / 2, width / 2 - 1, height / 2 - 1)
# ...
И ваш круг должен быть круглым.