Сообщить об ошибке.

Управление холстом/экраном в модуля turtle в Python

Размеры и цвет фона, очистка холста/экрана, пользовательские координаты

В материале представлены команды, отвечающие за управление холстом/экраном, в том числе текущий размер и фон холста, очистку холста, а так же создание пользовательской системы координат в модуле turtle.

Содержание:


turtle.bgcolor(*args):

Метод turtle.bgcolor() устанавливает или возвращает цвет фона холста TurtleScreen.

Аргумент args: строка c цветом (например 'blue') или три числа в диапазоне 0..colormode режим или тройной кортеж таких чисел.

>>> import turtle
>>> screen = turtle.Screen()
>>> screen.bgcolor("yellow")
>>> screen.bgcolor()
# 'yellow'
>>> screen.bgcolor("#800080")
>>> screen.bgcolor()
# (128.0, 0.0, 128.0)

turtle.bgpic(picname=None):

Метод turtle.bgpic() устанавливает фоновое изображение или возвращает имя текущего фонового изображения.

  • Если picname является именем файла, то установит соответствующее изображение в качестве фона.
  • Если имя изображения 'nopic', то удалит фоновое изображение, если оно есть.
  • Если picname равно None, то вернет имя файла текущего фонового изображения.

Аргумент picname – строка, имя gif-файла или "nopic", или None

>>> import turtle
>>> screen = turtle.Screen()
>>> screen.bgpic()
# 'nopic'
>>> screen.bgpic("landscape.gif")
>>> screen.bgpic()
"landscape.gif"

turtle.clearscreen(),
screen.clear():

Методы turtle.clear() и turtle.clearscreen() удаляет все рисунки и всех перьев с экрана холста. Сбрасывает теперь пустой экран в исходное состояние: белый фон, без фонового изображения, без привязок событий.

Примечание. этот метод холста TurtleScreen доступен как глобальная функция только под именем turtle.clearscreen(). Глобальная функция turtle.clear() отличается от метода TurtleScreen.clear().

turtle.reset(),
turtle.resetscreen():

Методы turtle.reset() и turtle.resetscreen() возвращает все перья на холсте/экране в исходное состояние.

Примечание. этот метод холста TurtleScreen доступен как глобальная функция только под именем turtle.resetscreen(). Глобальная функция turtle.reset() отличается от метода объекта TurtleScreen.reset().

turtle.screensize(canvwidth=None, canvheight=None, bg=None):

Метод turtle.screensize() возвращает текущее значение (ширина холста, высота холста), если аргументы не указаны. В противном случае изменяет размер холста.

Метод не изменяет окно, а добавляет полосы прокрутки. Для просмотра скрытых частей холста необходимо использовать полосы прокрутки. С помощью этого метода можно сделать видимыми те части рисунка, которые раньше находились за пределами холста.

Аргументы:

  • canvwidth: положительное целое число, новая ширина холста в пикселях.
  • canvheight: положительное целое число, новая высота холста в пикселях.
  • bg: новый цвет фона, строка означающая цвет (например 'blue') или кортеж RGB (например (255, 255, 255)).
>>> import turtle
>>> screen = turtle.Screen()
>>> screen.screensize()
# (400, 300)
>>> screen.screensize(2000,1500)
>>> screen.screensize()
# (2000, 1500)

Например, можно вычислить "сбежавшее перо" за пределы холста ;-)

turtle.setworldcoordinates(llx, lly, urx, ury):

Метод turtle.setworldcoordinates() настраивает пользовательскую систему координат и при необходимости переключается в режим 'word'.

Этот метод выполняет screen.reset(). Если режим режим 'word' уже активен, то все чертежи перерисовываются в соответствии с новыми координатами.

Аргументы:

  • llx: число, координата x левого нижнего угла холста.
  • lly: число, координата y нижнего левого угла холста.
  • urx: число, координата x правого верхнего угла холста.
  • ury: число, координата y верхнего правого угла холста.

**ВНИМАНИЕ//: в пользовательских системах координат углы могут искажаться.

>>> import turtle
>>> screen = turtle.Screen()
>>> screen.reset()
>>> screen.setworldcoordinates(-50,-7.5,50,7.5)
>>> pen = turtle.Turtle()
>>> for _ in range(72):
...     pen.left(10)
...
>>> for _ in range(8):
...     # правильный восьмиугольник
...     pen.left(45)
...     pen.fd(2)