Узнайте, как нарисовать красочные круги с графикой Python Turtle, сосредоточенной в определенных координатах.
- Автор записи
Автор: Robin Andrews
Дата записи
В этом уроке мы собираемся научиться рисовать круги с графикой Python Turtle. Затем мы изменим по умолчанию круг Метод, чтобы мы могли центрировать наши круги в определенные (х, у) Координаты, а затем повеселитесь немного с созданием цели стрельбы и добавлять некоторую интерактивность.
Как вы уже можете знать, Python Turtle Graphics является фантастическим способом узнать о программировании, а также о математике. В целом, кажется, мало интеграции между этими двумя предметами на уровне школы, что я надеюсь увидеть изменения. Многие мои посты в этом блоге написаны, чтобы помочь дальнейшему этой причине. Смотрите компьютерную математику категории для соответствующих сообщений.
Прежде чем начать, обратите внимание, что есть много способов достижения той же цели с графикой Python Turtle. Хотя это может быть хорошо, это также может привести к путанице. По этой причине я сделал вещи, это определенный способ, которым я считаю, дает лучшее основание для полного использования потенциала этого модуля. Например:
- Я создаю экран объект, чтобы я мог контролировать свой цвет и заголовок и т. Д.
- Я использую функции, которые имеют существующую черепаху как аргумент, чтобы помочь отговорить использование глобальных переменных и предоставлять дополнительную гибкость, поэтому та же функция может работать для нескольких черепах.
Не беспокойтесь об этих деталях, если они не дают вам общий смысл. Кодекс довольно решающий, и есть комментарии, чтобы помочь.
- Рисование кругов с Python
- Чертежные круги сосредоточены на (x, y)
- Следующий уровень
- Создание окружности в python
- Установка drawzero
- A. Основы основ
- Осваиваем геометрию с помощью кода
- B. Три линии
- C. Три окружности
- D. Два прямоугольника
- Создание более сложных фигур
- E. Три треугольника
- F. Фоторамка
- Использование переменных
- G. Два пластыря
- H. Скруглим углы
- I. Мишень
- J. Забор
- Работа с цветами
- K. В правильном порядке
- L. Даже так можно?
- Немного знаков дорожного движения
- M. Движение запрещено
- N. Въезд запрещён
- O. Одностороннее движение
- P. Тупик
- Q. Первая медицинская помощь
- R. Главная дорога
- S. Светофор
- Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python
- Как создавать объект Draw в Python?
- Как рисовать фигуры в Pillow?
- Параметры методов рисования – справочник
- Область рисования
- Заполнение фигуры с помощью параметра fill
- Задание цвета границ с использованием параметра outline
- Указание толщины границ с использованием параметра width
- Как рисовать эллипс и прямоугольник в Python?
- Как нарисовать линию, многоугольник и точку в Python?
- Что нужно для отрисовки дуги, хорды и «пирога» в Pillow?
- Рисование поверх изображения
- Выводы
Видео:Основы Matplotlib | Построение Графиков На PythonСкачать
Рисование кругов с Python
Способ по умолчанию для создания кругов с Python Turtle Graphics – это просто использовать круг Способ, как в следующем примере.
Это хорошо для многих целей, но он может быть расстраивает, поскольку он не дает вам контроль над тем, где находится центр круга. Обратите внимание, как в примере выше круг нецентрирован в расположении черепахи (называется toby ), который вступил в существование в расположении по умолчанию (0, 0) Отказ Используя метод по умолчанию, круг вытягивается из глянцевой точки, поэтому отправная точка находится на окружности.
Видео:15 Задача: Вычислить площадь и длину окружности круга при помощи PythonСкачать
Чертежные круги сосредоточены на (x, y)
Следующая программа демонстрирует, как рисовать круги, сосредоточенные в определенные (х, у) координаты. Это делает это с помощью функции draw_circle () который принимает несколько аргументов, как описано в коде.
Используя эту функцию, относительно легко нарисовать цель луки. Смотрите программу ниже.
Эта программа использует множество функций, которые вы можете использовать в своих собственных программах. Вы можете использовать столько же, сколько вам нравится, но экспериментируйте с идеями. Если у вас нет много идей, попробуйте просто внести небольшие изменения, такие как изменение цветов или размеров кругов. Некоторые из цветов, доступных в Python Turtle Graphics, можно найти здесь Отказ
Видео:Draw Circle in python Code in DescriptionСкачать
Следующий уровень
Этот раздел содержит более современные методы программирования Python, поэтому, если вы являетесь относительным новичком, вы можете оставить его на дальше.
Например, это включает в себя
- Обнаружение событий с Python Turtle Graphics
- Функции обратного вызова события
- Передача дополнительных аргументов обратным вызовам, используя лямбда
Здесь есть много ингредиентов, что вы можете использовать в своих собственных проектах. Как и прежде, перейдите вперед и отредактируйте биты программы или используйте биты в собственном проекте. Программа в настоящее время не игра как такая, но я ожидаю, что это может быть сделано в один. Можете ли вы думать о том, как? Я думаю, что какое-то случайное позиционирование крестов или рефлекторной тестирования. В этой статье мы не посмотрели таймеры и анимации, но наверняка они возможно с графикой Python Turtle. Может быть, идея, которую вы можете стать возможными с небольшим количеством знаний, поэтому, возможно, сделать записку и вернуться к нему позже. Если у вас есть идея, с которой вы хотите помочь, дайте мне знать в комментариях, и я посмотрю, смогу ли я помочь.
Этот урок показал вам, как рисовать круги, используя графику Python Turtle, а затем, как улучшить основную функциональность и добавлять некоторые интерактивные функции. Я надеюсь, что вы нашли это весело и интересно.
Видео:Функции trunc, floor, ceil. Округление вверх и вниз в pythonСкачать
Создание окружности в python
Внутренний функционал питона довольно мощный, и его вполне достаточно для реализации многих проектов. Однако питон не был бы таким популярным среди программистов, если бы не мог расширять свой функционал за счет дополнительных модулей (ещё их называют библиотеками или пакетами) с помощью всего лишь одной строчки кода.
Каждый существующий модуль написан для решения задач в конкретной области. И первым модулем, который не включён в стандартную библиотеку питона, с которым мы познакомимся, будет модуль drawzero .
drawzero — это простая и удобная графическая библиотека, в которой есть функции для рисования простых фигур. Чтобы получить к ним доступ, надо в начале программы написать строку
Видео:Рисуем правильные многоугольники turtrle | Программирование на PythonСкачать
Установка drawzero
Перед первым использованием модуль drawzero нужно установить. Для этого в терминале нужно выполнить команду
Под linux и MacOS вместо pip нужно вводить pip3 .
Если слово «терминал» непонятно, то можно запустить вот такую программу:
Если в результате её запуска вывод будет примерно такой как ниже, то у вас успех!
A. Основы основ
Итак, приступим к рисованию!
Скопируйте и запустите программу ниже. В результате запуска должно открыться окно с нарисованной по диагонали красной линией. Сдавать код этой задачи не нужно 🙂
Видео:Знакомство с модулем Turtle | Программирование на PythonСкачать
Осваиваем геометрию с помощью кода
Система координат в программировании и система координат в математике немного отличаются. В программировании точка с координатами (0, 0) находится в верхнем левом углу. Ось x направлена от неё вправо, а ось y — вниз.
Любая точка имеет позицию (координату) относительно оси x и относительно оси y , поэтому координаты каждой точки это пара чисел — сначала x , потом y . Эти координаты указываются через запятую и записываются в круглых скобках.
Рисование отрезка выполняется, как мы уже знаем, с помощью команды line . В скобках указываются параметры: цвет и две точки — концы отрезка. Именно в таком порядке.
Цвет пока можно выбирать из следующих вариантов: «black» , «white» , «red» , «green» , «blue» , «yellow» , «brown» . Скоро мы научимся выбирать любые цвета.
Новость: строчки кода, начинающиеся с символа «#» называются в Python комментариями. Эти строчки предназначены для пояснения частей кода, чтобы в нём было проще разобраться. Особенно когда этот код читает не тот, кто его писал. Всё, что написано в такой строке, не считается программой и не выполняется.
Закомментировать сразу несколько строк кода можно, предварительно выделив эти строки, нажать Ctrl-/ (нажав и удерживая клавишу Ctrl, нажать клавишу / ). Повторное нажатие той же комбинации клавиш убирает комментарии в блоке кода, если он был перед этим закомментирован.
Рисование окружности выполняется с помощью команды circle . В скобках указываются параметры: цвет, координаты центра окружности и радиус:
Рисование прямоугольника выполняется с помощью команды rect . В скобках указываются параметры: цвет, координаты левой верхней вершины, ширина (вдоль оси x ), высота (вдоль оси y ). То есть, при помощи такой функции можно рисовать только прямоугольники, параллельные осям координат.
B. Три линии
Нарисуйте три линии так, чтобы получился треугольник (любой).
C. Три окружности
Теперь нарисуйте три окружности. Все три центра должны быть разными точками, а окружности вложены друг в друга и не пересекаться. То есть вторая окружность должна быть строго внутри первой, а третья — внутри второй.
Примерно вот так:
D. Два прямоугольника
Нарисуйте прямоугольник внутри другого прямоугольника так, чтобы между ними получилась ровная «рамка».
Видео:Изучение TKinter за 8 минут / Разработка GUI программы на PythonСкачать
Создание более сложных фигур
Рисуя треугольник линиями, можно заметить, что каждую точку мы выписывали дважды, потому что она была концом двух отрезков. Может быть можно сделать то же самое экономнее?
Нам поможет функция рисования многоугольника polygon . Первый параметр это уже знакомый нам цвет, после которого надо перечислить координаты вершин многоугольника.
Если в многоугольнике больше трёх вершин, нужно учесть, что перечислять вершины в произвольном порядке нельзя. Представьте, что вы обходите эту фигуру по часовой стрелке или против часовой стрелки. В функции polygon надо перечислять вершины одним из этих способов, начиная с любой вершины. Если порядок вершин неверный, то может получиться, например, что-то такое:
Пока мы рисовали только контуры. Теперь научимся рисовать закрашенные фигуры. Это может быть круг, прямоугольник и многоугольник. Для получения закрашенной фигуры есть команды: filled_circle , filled_rect , filled_polygon с такими же параметрами, как и у неокрашенных фигур.
E. Три треугольника
Нарисуйте три треугольника так, чтобы два из них не пересекались и находились внутри третьего.
Примерно вот так:
F. Фоторамка
Теперь нарисуйте прямоугольную рамку зелёного цвета ( ‘green’ ). Размер «внешней» части 700×400 . Ширина рамки 100 . Внутренность рамки должна быть чёрной ( ‘black’ ). Постарайтесь обойтись всего двумя командами из библиотеки drawzero .
Видео:#5. Математические функции и работа с модулем math | Python для начинающихСкачать
Использование переменных
Мы познакомились с основными возможностями библиотеки drawzero . Теперь пора вспомнить про переменные — они нам скоро пригодятся.
Попробуем нарисовать какую-нибудь простенькую фигуру, например прямоугольник с закруглёнными концами.
Координаты центра окружности это середины левой и правой (вертикальных) сторон прямоугольника и их можно посчитать. Это и правда несложно. Но что, если эту картинку надо перерисовать в другом месте или, скажем, сделать исходный прямоугольник чуть выше или шире? Это по-прежнему будет несложно сделать, но придётся пересчитывать координаты центров окружностей. А если картинка такая?
Всего-то — сделали полоски чуть шире. Пришлось пересчитать почти все координаты. Теперь представим себе, что это всё надо будет пересчитать несколько раз.
Напишем ту же программу по шагам, но для вычисления координат станем использовать переменные. Что нам нужно знать об этой фигуре, для того, чтобы её нарисовать? Нам надо знать где она находится и её главные размеры.
Место можно задать по-разному. Мы запомним координаты левого верхнего угла. Размеры фигуры определяются размерами прямоугольника. А радиус круга это половина его высоты, поэтому размеров прямоугольника достаточно. Не поленимся ввести для радиуса отдельную переменную, код так будет лучше читаться.
Итак, всё готово для рисования. Теперь пишем те же самые вызовы функций рисования прямоугольников и кругов, но для вычисления всех координат используем только переменные. Надо только придумать — как вычислить координаты вертикального прямоугольника, используя имеющиеся переменные?
Очень полезно нарисовать картинку на бумаге и разобраться, откуда берутся формулы в программе, представленной ниже.
В нашей программе стало в 2 раза больше строк, зато перерисовать эту фигуру в другом месте или поменять её размер стало проще простого. Надо только изменить нужные переменные. И всё! Все координаты и размеры пересчитаются автоматически.
G. Два пластыря
В аптечке есть два пластыря в форме креста со скруглёнными краями. В коде ниже есть пример одного из них, размер второго (ширина) равен 300 . Подберите место, куда надо «наклеить» эти два пластыря, чтобы закрыть все порезы, которые отмечены красными треугольниками.
Используйте для перемещения переменные, объявленные в коде. Пропорции должны быть сохранены (меньшая сторона в 5 раз меньше большей).
H. Скруглим углы
Давайте теперь сделаем не такие острые углы. Нарисуйте такую картинку:
Только «скруглить» угол можно по-разному. В идеальной фоторамке ширина должна быть одинаковой и в углах тоже. Но как понять, что такое «ширина рамки в углу»?
Давайте так: ширина это расстояние от точки на внешней границы к ближайшей к ней точке на внутренней. Изучите картинку со схемой и вы поймёте, что надо нарисовать (и в какой последовательности).
А ещё хорошо бы сделать всё на белом фоне! Для того, чтобы залить весь экран одним цветом, используйте команду `fill`. Например, заливка красным выглядит так:
I. Мишень
Хм, простая картинка — колечки одинаковой ширины. Ясно, что рисовать чёрные ‘black’ и белые ‘white’ круги, но в какой последовательности? Справитесь?
Тут, кстати, и циклы могут пригодиться 🙂
J. Забор
Хорошо, мишень нарисовали, а куда её повесить? Может на забор?
Видео:9 Cтроки и операции над ними PythonСкачать
Работа с цветами
Пора научиться создавать свои цвета. Каждый цвет состоит из трёх компонентов: красного, зелёного и синего. Наверняка вам встречалась аббревиатура RGB (сокращение от Red, Green и Blue).
Представьте, что в абсолютно тёмной комнате вы светите на стену тремя фонариками: красным, зелёным и синим. У каждого есть регулировка интенсивности — число от 0 (фонарик выключен) до 255 (фонарик светит максимально ярко). Все фонарики светят в одну и ту же точку стены и в зависимости от настроек интенсивности всех трёх фонариков на стене получается пятно определённого цвета. Вот несколько примеров:
- R = 0, G = 0, B = 0 — все фонарики выключены, на стене чёрное пятно (которое и так не видно, потому что в комнате темно);
- R = 255, G = 255, B = 255 — все фонарики включены на максимальную мощность, на стене яркое белое пятно;
- R = 100, G = 100, B = 100 — все фонарики включены, имеют одинаковую (но небольшую) интенсивность, на стене тёмно-серое пятно;
- R = 255, G = 0, B = 0 — красный фонарик включен полностью, остальные выключены, на стене яркое красное пятно;
- R = 255, G = 0, B = 255 — красный и синий фонарики включены полностью, зелёный выключен, на стене яркое фиолетовое пятно;
В библиотеке drawzero можно определить свой цвет при помощи тройки чисел, взятой в скобки. Эту тройку можно запомнить в переменной и использовать при вызове всех функций рисования из модуля drawzero .
Цвета, приведённые в примере выше можно было сохранить так:
Нарисуем картинку из предыдущего параграфа, определив свои цвета:
K. В правильном порядке
Нарисуйте закрашенные треугольник, прямоугольник и круг, так, чтобы они «накладывались» в таком порядке, как изображено на рисунке.
L. Даже так можно?
Нарисуйте такую фигуру:
Надо обойтись 5 вызовами функций из модуля drawzero .
Видео:Уроки Python / Рисуем с помощью черепашки / Подключение модуля turtleСкачать
Немного знаков дорожного движения
Мы познакомились с основными геометрическими понятиями и тем, как их использовать в программе на Python при помощи библиотеки drawzero . Также убедились на нескольких примерах, как можно быть полезно при рисовании использовать переменные для промежуточных вычислений. Пусть даже иногда программа и становится от этого немного длиннее.
M. Движение запрещено
N. Въезд запрещён
O. Одностороннее движение
Синий цвет задаётся такой тройкой чисел: R = 48, G = 151, B = 222 .
P. Тупик
Знак имеет что-то общее с предыдущим и, немного поменяв параметры, можно почти половину взять оттуда. Используйте следующие цвета:
- белый: «white»
- красный: R = 185, G = 43, B = 31
- голубой: R = 48, G = 151, B = 222
Q. Первая медицинская помощь
Используйте следующие цвета:
- белый: «white»
- красный: R = 254, G = 0, B = 0
- голубой: R = 12, G = 105, B = 226
R. Главная дорога
То, как выглядит этот знак, найдите в поисковике. Скруглять углы и рисовать чёрные окантовки не нужно. Только белое и жёлтое.
S. Светофор
При рисовании красной треугольной рамки могут возникнуть сложности, если захочется сделать всё точно. Можно сделать и «на глаз».
Видео:Модули и классы в языке Python. Окружности и дуги.Скачать
Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python
Pillow – это продвинутая библиотека, позволяющая создавать и обрабатывать изображения. С ее помощью можно, в том числе, рисовать круг, квадрат и прямую линию. Для этого используется модуль ImageDraw . Сегодня мы поговорим подробно о нем.
Видео:IMPORT MATH - Python | ДЛЯ НАЧИНАЮЩИХСкачать
Как создавать объект Draw в Python?
Если нам надо создать фигуру, необходимо сначала создать объект Image, который будет служить фоном для нашего рисунка. Далее, для создания конкретных фигур мы станем пользоваться объектом Draw .
Перед тем, как начинать работать над созданием объектов, необходимо импортировать модули Image и ImageDraw . А сам код будет таковым.
Этот код создает пустое изображение размером 500 на 300. Также он устанавливает темно-желтый цвет фона.
Видео:Урок 4 Переменные в Python. Оператор присваиванияСкачать
Как рисовать фигуры в Pillow?
Чтобы осуществлять рисование фигур в Python, необходимо в объекте Draw библиотеки Pillow использовать соответствующие методы рисования. Для начала давайте попробуем нарисовать эллипс, прямоугольник и прямую линию.
После выполнения этого кода мы получим следующий результат.
Видео:15. Рисуем простые фигуры с помощью черепашки (Turtle). Основы PythonСкачать
Параметры методов рисования – справочник
Да, способы рисования отличаются в зависимости от метода, который используется. Тем не менее, такие параметры являются общими для всех.
Область рисования
Этот параметр обозначается, как xy . С его помощью мы задаем прямоугольную область, которая будет использоваться для рисования новой фигуры.
Есть такие форматы:
Если рисуется линия, многоугольник или точка, то используются множественные координаты вместо двух точек, которые представляют прямоугольную область.
Принцип работы следующий:
- Линия. Реализуется с помощью метода line , который связывает точки между собой.
- Многоугольник. Чтобы его создать, необходимо использовать метод polygon() . Он работает по похожему принципу, соединяя линиями указанные точки, только в конечном итоге линия должна получиться замкнутой.
- Точка. Реализуется с использованием метода point() . Она рисует точку размером в 1 пиксель для каждой точки, которая указывается.
Заполнение фигуры с помощью параметра fill
С помощью параметра fill мы определяем цвет, который будет использоваться для того, чтобы заполнить геометрическую форму.
Здесь на спецификацию формата цвета влияет режим изображения, который указывается для объекта Image.
- RGB. В этом случае формируется цветное изображение. В этом случае цвет указывается в формате: красный-зеленый-синий (R,G,B).
- L. Генерируется черно-белая геометрическая фигура. Здесь нужно указать одну цифру в пределах от 0 до 255. Допускаются исключительно целочисленные значения.
По умолчанию используется значение None , что означает отсутствие фона фигуры. То есть, она не заполняется никаким цветом, принимая тот фон того участка, что находится под ней.
К слову, цвет можно указать тремя способами: передать его цветом, использовать шестнадцатеричный формат или указать интенсивность красного, зеленого и синего оттенков в палитре RGB.
Учитывайте то, что текстовый формат не предусматривает наличия всех цветов. Перечень тех, которые доступны, ограничен.
Задание цвета границ с использованием параметра outline
Если нужно указать, какого цвета должна быть граница многоугольника, используется параметр outline .
Цвет задается абсолютно так же, как это происходит в случае с параметром fill , который обсуждался ранее. По умолчанию используется значение None . То есть, границы отсутствуют.
Указание толщины границ с использованием параметра width
Нет разницы, какая фигура вами будет рисоваться. Вы всегда имеете возможность задать размер ее границы с помощью этого параметра. Толщина задается в пикселях.
Видео:#2. Функция plot для построения и оформления двумерных графиков | Matplotlib урокиСкачать
Как рисовать эллипс и прямоугольник в Python?
С помощью метода ellipse() разработчик может нарисовать эллипс. В параметре xy задается место в системе координат, которой будет генерироваться фигура. Если нами будут заданы четыре координаты, соответствующие квадрату, то получится ровный круг.
Давайте попробуем с помощью кругов создать маленький смайлик.
Результат:
Видео:Вычисление площади круга и длинны окружности по заданному радиусу в Паскаль с применением константыСкачать
Как нарисовать линию, многоугольник и точку в Python?
Предположим, нам надо нарисовать линию. Что для этого нужно сделать? Правильно, использовать функцию line , аргументы которой следующие:
- xy . Точка по осям абсцисс и ординат. Необходимо, чтобы таких точек было, по крайней мере 2. Точки указываются в скобках, и каждая пара x и y также заключается в скобки ((x1, y1), (x2, y2), (x3, y3)…). Далее линия рисуется таким образом, чтобы соединить все эти точки.
- width . Здесь указывается ширина линии в пикселях. Учтите, что если ширина линии становится больше и указывать 3 точки или более, то получившаяся фигура будет выглядеть хуже.
Для отрисовки многоугольника используется метод polygon(xy, fill, outline) .
- Параметр xy . С его помощью разработчик задает несколько координат нескольких точек. Минимальное количество для образования многоугольника – 3. В этом случае будет нарисован треугольник. Далее эти точки соединяются линиями таким образом, чтобы получилась геометрическая фигура.
- fill. Заполнитель, который нами был рассмотрен ранее.
- outline. Значение то же самое, что и было описано выше.
Проще всего нарисовать точку. Для этого используется метод point(xy, fill) . Можно рисовать несколько точек, задав несколько координат таким же способом, как было описано выше (через множественные скобки). Одна точка рисуется для каждой пары координат.
Ниже вы можете увидеть примеры рисования этих геометрических фигур. Каждая точка являет собой 1 пиксель. Поэтому их тяжело увидеть, но они все равно нарисованы справа.
Видео:Построение графиков на python (питон)Скачать
Что нужно для отрисовки дуги, хорды и «пирога» в Pillow?
А теперь давайте рассмотрим пример для рисования дуги, хорды, pieslice . Для рисования фигуры используется параметр xy .
- Дуга: arc(xy, start, end, fill):
- Параметры start и end
- Указание угла дуги в градусах;
- Хорда: chord(xy, start, end, fill, outline):
- Начальные и конечные точки дуги связываются прямой линией.
- Пирог: pieslice(xy, start, end, fill, outline):
- Начальные и конечные точки дуги связываются прямой линией с центром круга.
А теперь приведем пример кода, который рисует картинку, приведенную ниже.
И такой результат мы получаем в итоге.
Видео:Алгоритмы. Пересечение окружностейСкачать
Рисование поверх изображения
Рисовать можно не только по пустому полотну, но уже и по существующему изображению. Для этого необходимо воспользоваться методом open() объекта Image .
В качестве примера мы воспользуемся изображением создателя Python Гвидо ван Россума.
Для начала сохраните это изображение у себя.
В результате, у нас получится такая картинка.
Выводы
Таким образом, реализовать работу с изображениями в Python довольно просто. Достаточно воспользоваться продвинутой библиотекой Pillow, которая отлично справляется с самыми разными задачами, касающимися графики.