Популярный способ познакомить детей с программированием.
Графический модуль turtle — популярный способ познакомить детей с программированием. Он был частью оригинального языка программирования Logo.
Представьте роботизированную черепаху, начинающуюся с точки (0, 0) в плоскости x/y. После импорта модуля turtle дайте ей команду turtle.forward(15) , и она переместится (на экране!) на 15 пикселей в направлении, в котором смотрит, рисуя линию при движении. Дайте ей команду turtle.right(25) , и она повернется на месте на 25 градусов по часовой стрелке.
Комбинируя вместе эти и подобные команды, можно легко рисовать замысловатые формы и изображения.
Содержание:
- Общие сведения и подходы работы с модулем turtle ;
- Пример: звезда «Turtle»;
Общие сведения и подходы работы с модулем.
Модуль turtle — это расширенная реализация одноименного модуля из стандартного дистрибутива Python до версии Python 2.5.
Он сохраняет достоинства старого модуля turtle и почти на 100% совместим с ним. Это означает, чтобы дать возможность обучающемуся программисту использовать все команды, классы и методы в интерактивном режиме при использовании модуля из IDLE, запущенного с ключом -n .
Уроки Python / Рисуем с помощью черепашки / Подключение модуля turtle
Модуль turtle предоставляет графические примитивы черепахи как объектно-ориентированным, так и процедурно-ориентированным способами. Так как turtle для базовой графики использует tkinter , то необходима версия Python3, установленная с поддержкой Tk .
Объектно-ориентированный интерфейс использует по существу два + два класса:
- Класс TurtleScreen определяет графические окна как площадку для рисования. Его конструктору требуется аргумент tkinter.Canvas или ScrolledCanvas . Его следует использовать, когда черепаха используется как часть какого-либо приложения. Функция Screen() возвращает одноэлементный объект подкласса TurtleScreen . Эту функцию следует использовать, когда черепаха используется как автономный инструмент для создания графики. Как одноэлементный объект, наследование от его класса невозможно. Все методы TurtleScreen / Screen также существуют как функции, то есть как часть процедурно-ориентированного интерфейса.
- RawTurtle определяет объекты Turtle , которые рисуются на TurtleScreen . Его конструктору требуется аргумент Canvas , ScrolledCanvas или TurtleScreen , чтобы объекты RawTurtle знали, где рисовать. Производным от RawTurtle является подкласс Turtle , который использует экземпляр Screen , который создается автоматически, если еще не присутствует. Все методы RawTurtle / Turtle также существуют как функции, то есть как часть процедурно-ориентированного интерфейса.
Процедурный интерфейс предоставляет функции, производные от методов классов Screen и Turtle . Названия у них такие же, как у соответствующих методов. Объект экрана screen всегда создается автоматически, когда вызывается функция, производная от метода Screen . Безымянный объект turtle всегда создается автоматически, когда вызывается какая-либо из функций, производных от метода Turtle .
Чтобы использовать несколько черепах на экране, необходимо использовать объектно-ориентированный интерфейс.
Пример простого рисунка с модулем turtle .
from turtle import * color(‘red’, ‘yellow’) begin_fill() while True: forward(200) left(170) if abs(pos()) 1: break end_fill() done()
Файл конфигурации модуля turtle .
Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle , чтобы сохранить максимально возможную совместимость с ним.
Если необходимо использовать другую конфигурацию, которая лучше отражает функции этого модуля или лучше соответствует вашим потребностям, например для использования с классами, то можно подготовить файл конфигурации turtle.cfg , который будет прочитан во время импорта и изменить конфигурацию в соответствии с его настройками.
Встроенная конфигурация будет соответствовать следующему файлу turtle.cfg :
width = 0.5 height = 0.75 leftright = None topbottom = None canvwidth = 400 canvheight = 300 mode = standard colormode = 1.0 delay = 10 undobuffersize = 1000 shape = classic pencolor = black fillcolor = black resizemode = noresize visible = True language = english exampleturtle = turtle examplescreen = screen title = Python Turtle Graphics using_IDLE = False
Краткое объяснение записей конфигурации:
- Первые четыре строки соответствуют аргументам метода Screen.setup() .
- Строки 5 и 6 соответствуют аргументам метода Screen.screensize() .
- Форма пера может быть любой из встроенных фигур, например, стрелка, черепаха и т. д. Для получения дополнительной информации попробуйте help(shape) .
- Если не хотите использовать цвет заливки (т.е. сделать черепаху прозрачной), то необходимо написать fillcolor = » (при этом, в cfg-файле непустые строки не должны иметь кавычек).
- Если необходимо отразить состояние модуля turtle , то необходимо использовать resizemode = auto .
- Записи exampleturtle и examplescreen определяют имена этих объектов в том виде, в котором они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.
- using_IDLE : Установите значение True , если регулярно работаете с IDLE и его переключателем -n . Это предотвратит переход turtle.exitonclick() в основной цикл.
В каталоге, где хранится модуль, может быть файл turtle.cfg , а в текущем рабочем каталоге может быть еще один файл, созданный пользователем. Последний переопределит настройки первого.
Пакет с примерами turtledemo .
Пакет turtledemo включает набор демонстрационных скриптов. Эти сценарии можно запускать и просматривать с помощью прилагаемой демонстрационной программы следующим образом:
python -m turtledemo
Кроме того, можно запускать демонстрационные скрипты индивидуально. Например,
python -m turtledemo.bytedesign
Каталог пакета turtledemo содержит:
- Программу-просмотрщик __main__.py , которую можно использовать для просмотра исходного кода скриптов и их одновременного запуска.
- Несколько скриптов, демонстрирующих различные функции модуля turtle . Доступ к примерам можно получить через меню «Examples». Их также можно запускать автономно.
- Файл turtle.cfg , который служит примером того, как писать и использовать такие файлы.
ПРИМЕЧАНИЕ: Если запуск в терминале команды python -m turtledemo выдает /usr/bin/python : No module named turtledemo, то необходимо установить файлы примеров установленной версии Python. Например для Linux:
sudo apt install python3-examples idle3
И все заработает.
Установка поддержки Tk для Python3 (Tkinter) в Linux/X11.
Запустите оболочку Python (например, /usr/bin/python3 ) и проверьте импорт модуля turtle (например from turtle import * ). Если при попытке импортировать turtle выводится сообщение об ошибке «ModuleNotFoundError: No module named ‘tkinter'», то в большинстве случаев сообщение говорит о том, что нужно установить поддержку Tcl/Tk.
В основном дистрибутивы Linux выделяют поддержку Tkinter в отдельный пакет. Это избавляет от установки библиотек Tcl / Tk для людей, которые используют Python, но не используют Tkinter . Проще говоря, необходимо установить пакет с именем python3-tk , который и обеспечит установку и поддержку в системе соответствующих версий библиотек Tcl / Tk .
$ sudo apt install python3-tk
В данном случае этот пакет предоставляет библиотеки Tcl / Tk для использования с Python3.
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Рисование/передвижение пера по холсту, модуль turtle.
- Поднять/опустить перо при движении в модуле turtle Python.
- Скрыть/показать перо на холсте в модуле turtle Python.
- Толщина пера и его форма, модуль turtle.
- Цвет пера/карандаша и цвет заливки в модуле turtle Python.
- Смена позиции пера на холсте в модуле turtle Python.
- Сведения о позиции пера на холсте в модуле turtle.
- Круг, многоугольник, точка в модуле turtle Python.
- Копия формы пера, модуль turtle Python.
- Очистка рисунка активного пера в модуле turtle Python.
- Функция write() модуля turtle, вывод текста на холсте.
- События мыши для пера в модуле turtle.
- События клавиатуры и мыши для холста в модуле turtle Python.
- Вызвать диалоговое окно в модуле turtle.
- Управление холстом/экраном в модуля turtle.
- Управление анимацией пера в модуля turtle Python.
- Специальные методы пера модуля turtle
- Настройки и специальные методы холста модуля turtle.
Источник: docs-python.ru
Черепашья графика
На прошлом уроке мы научили исполнителя черепаху рисовать правильные многоугольники и познакомились с правилом 360 градусов.
Попробуем еще что-нибудь нарисовать:
повторить 18 вперед 200 налево 100 > |
Или еще:
повторить 50 вперед 200 налево 145 > |
Как вы заметили, во всех наших программах до сих пор менялся только угол поворота и количество повторений. При этом мы получали самые разные фигуры. Попробуйте поэкспериментировать самостоятельно с поворотами и количеством повторений.
А следующей нашей темой будет выбор цвета для кисти (пера), которой рисует черепаха.
Перед тем как начать что-либо рисовать, дадим команду ЦВЕТ и укажем номер цвета, тогда черепашка возьмет кисть нужного цвета.
Вставлять в программу команду выбора цвета удобно, используя цветные кнопки с числами цветов в нижней части экрана. Всего черепашка знает 16 цветов (черный цвет имеет номер 0).
Попробуем написать программу с командами выбора цвета.
цвет 12
вперед 50
цвет 14
вперед 50
цвет 10
вперед 50
Следующая за белым цветом (15) кнопка помогает воспользоваться функцией RGB ( R ed — Красный, G reen — Зеленый, B lue — Синий).
Функция RGB возвращает один из 16 миллионов цветов 24-битной палитры. Значения R, G и B должны лежать в пределах от 0 до 255.
цвет RGB(255, 0, 100)
задаст для кисти яркий малиновый цвет.
Название функции RGB можно не указывать, например,
цвет (255, 0, 100)
Для управления толщиной кисти служит команда КИСТЬ .
кисть 5
цвет RGB (186, 221, 131)
повторить 18 вперед 250
налево 140
>
Для управления кистью служат две команды:
ПОДНЯТЬ КИСТЬ — черепашка поднимает кисть, после чего перестает оставлять след при движении.
ОПУСТИТЬ КИСТЬ — черепашка опускает кисть, после чего оставляет след при движении.
Поднимая и опуская кисть можно, например, нарисовать прерывистую линию.
цвет 14
кисть 10
повторить 6 вперед 20
поднять перо
вперед 20
опустить перо
>
Кроме команды «кисть» черепашка понимает равносильные команды КАРАНДАШ и ПЕРО . То есть можно написать
поднять перо
поднять карандаш
В заключение еще несколько полезных команд:
СПРЯТАТЬ ЧЕРЕПАХУ — делает черепашку невидимой.
ПОКАЗАТЬ ЧЕРЕПАХУ — делает черепашку видимой.
МЕСТО — передвигает черепашку в место с указанными координатами. Размеры экранного поля составляют 800 точек по горизонтали и 600 точек по вертикали. Точка с координатами (0, 0) находится в верхнем левом углу. Точка с координатами (800, 600) — в нижнем правом углу. Центр экрана — (400, 300).
Попробуем нарисовать квадрат, используя команду место .
кисть 8
место 400, 100
место 600, 100
место 600, 300
место 400, 300
ДОМОЙ — по этой команде черепашка возвратится в исходное положение, в центр экрана, головой вверх.
Нарисуем красный крест с помощью команд домой и место .
цвет 12
кисть 80
место 400, 100
домой
место 600, 300
домой
место 200, 300
домой
место 200, 300
домой
место 400, 500
домой
спрятать черепаху
ОЧИСТИТЬ ФОН — очищает фон, стирает все нарисованное.
Фон рабочего поля можно менять командой ФОН = с указанием имени файла, лежащего в папке «Фоны». Для того чтобы выбрать файл фона, напишем команду фон= , затем нажмем на закладку меню фонов в правой части экрана и сделаем двойной клик на каком-либо изображении фона.
Также можно закрасить фон командой ФОН с указанием номера цвета без знака равно.
фон RGB(183, 104, 143)
фон (150, 191, 128)
повторить 50 фон 3
пауза 500
фон 6
пауза 500
>
Не делайте паузу меньше 200, это может привести к нагрузке на вашу нервную систему.
Команда ФОН является методом черепахи и не изменяет фон, поэтому команда ОЧИСТИТЬ ФОН вернет текущий фон к исходному состоянию.
Источник: myrobot.ru
Рисуем героя из Among Us / Библиотека Python Turtle
Библиотека Turtle позволяет быстро рисовать разнообразные фигуры при помощи незамысловатых методов. В ходе статьи мы выполним построение главного персонажа из игры Among Us.
Библиотека Turtle
Рассказывать про игру Among Us мы не будем, но вместо этого немного расскажем относительно библиотеки Turtle.
Графика с черепахой (Turtle с англ. – черепаха) – популярный способ познакомить детей с программированием. Представьте себе роботизированную черепаху, начинающуюся с точки (0, 0) в плоскости x-y. Именно такая черепаха есть в этой библиотеки. Вы можете передвигать её и в зависимости от ее передвижения будут создаваться объекты любых форм.
Библиотека имеет набор очень простых методов, что можно использовать для создания различных рисунков.
Установка Turtle
Для установки Turtle вам потребуется пакетный менеджер PIP, что предоставляется вместе с самим языком Python. Создайте проект в любом IDE, например в PyCharm, и далее через терминал выполните установку библиотеки PythonTurtle .
Для тех кто на Linux, то вам нужно прописать дополнительные команды, что представлены на странице с PythonTurtle .
Создание проекта
Ниже представлен код готового приложения на Turtle. Если нужно больше информации, то просмотрите обучающее видео в конце этой статьи.
import turtle # Основные цвета для персонажа BODY_COLOR = ‘red’ GLASS_COLOR = ‘skyblue’ # Главный объект t = turtle.Turtle() # Метод для рисования тела def body(): t.pensize(30) # Размер кисти t.fillcolor(BODY_COLOR) # Цвет заполнения t.begin_fill() # Сторона справа t.right(90) t.forward(50) t.right(180) t.circle(40, -180) t.right(180) t.forward(200) # Голова t.right(180) t.circle(100, -180) # Сторона слева t.backward(20) t.left(15) t.circle(500, -20) t.backward(20) t.circle(40, -180) t.left(7) t.backward(50) t.up() t.left(90) t.forward(10) t.right(90) t.down() t.right(240) t.circle(50, -70) t.end_fill() # Рисуем очки def glass(): # Передвигаем черепашку t.up() t.right(230) t.forward(100) t.left(90) t.forward(20) t.right(90) t.down() # Устанавливаем цвет t.fillcolor(GLASS_COLOR) t.begin_fill() t.right(150) t.circle(90, -55) t.right(180) t.forward(1) t.right(180) t.circle(10, -65) t.right(180) t.forward(110) t.right(180) t.circle(50, -190) t.right(170) t.forward(80) t.right(180) t.circle(45, -30) t.end_fill() # Рисуем рюкзак def backpack(): t.up() t.right(60) t.forward(100) t.right(90) t.forward(75) t.fillcolor(GLASS_COLOR) t.begin_fill() t.down() t.forward(30) t.right(255) t.circle(300, -30) t.right(260) t.forward(30) t.end_fill() # Вызываем все необходимые методы body() glass() backpack() turtle.done()
Видео на эту тему
Детальный разбор Turtle вы можете просмотреть на видео ниже. В видео уроке показан полный разбор библиотеки и её возможностей.
Дополнительный курс
На нашем сайте также есть углубленный курс по изучению языка Питон . В ходе огромной программы вы изучите не только язык Питон, но также научитесь создавать веб сайты за счёт веб технологий и фреймворка Джанго. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Питон, создавать на нём полноценные ПК приложения на основе библиотеки Kivy, а также создавать веб сайты на основе библиотеки Джанго.
Больше интересных новостей
Как начать карьеру Android-разработчика?
5 свежих языков программирования
Как сделать красивый прелоадер для сайта
ТОП-5 ноутбуков для программирования на 2022 год
Источник: itproger.com