Узнайте, как нарисовать красочные круги с графикой Python Turtle, сосредоточенной в определенных координатах.
- Автор записи
Автор: Robin Andrews
Дата записи
В этом уроке мы собираемся научиться рисовать круги с графикой Python Turtle. Затем мы изменим по умолчанию круг Метод, чтобы мы могли центрировать наши круги в определенные (х, у) Координаты, а затем повеселитесь немного с созданием цели стрельбы и добавлять некоторую интерактивность.
Как вы уже можете знать, Python Turtle Graphics является фантастическим способом узнать о программировании, а также о математике. В целом, кажется, мало интеграции между этими двумя предметами на уровне школы, что я надеюсь увидеть изменения. Многие мои посты в этом блоге написаны, чтобы помочь дальнейшему этой причине. Смотрите компьютерную математику категории для соответствующих сообщений.
Прежде чем начать, обратите внимание, что есть много способов достижения той же цели с графикой Python Turtle. Хотя это может быть хорошо, это также может привести к путанице. По этой причине я сделал вещи, это определенный способ, которым я считаю, дает лучшее основание для полного использования потенциала этого модуля. Например:
- Я создаю экран объект, чтобы я мог контролировать свой цвет и заголовок и т. Д.
- Я использую функции, которые имеют существующую черепаху как аргумент, чтобы помочь отговорить использование глобальных переменных и предоставлять дополнительную гибкость, поэтому та же функция может работать для нескольких черепах.
Не беспокойтесь об этих деталях, если они не дают вам общий смысл. Кодекс довольно решающий, и есть комментарии, чтобы помочь.
- Рисование кругов с Python
- Чертежные круги сосредоточены на (x, y)
- Следующий уровень
- «Черепашья графика» при помощи turtle, рисование при помощи алгоритма
- Начало работы. Движения
- Геометрические фигуры
- Самостоятельно:
- Решения
- Изменяем параметры во время движения
- Больше программирования!
- Координаты на плоскости
- Круг и точка
- Самостоятельно:
- Решения
- Делаем фигуры равновеликими
- Другие полезные функции:
- Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Итог: функции и классы на примере turtle
- Графический интерфейс средствами библиотеки turtle.
- Рисуем геометрические фигуры в Python с помощью Pillow
- Содержание статьи
- Создание объекта Draw в Python
- Рисуем фигуры в Pillow: ellipse, rectangle и line
- Справочник по параметрам методов рисования
- Область рисования — xy
- Параметр fill — заполняем фигуру определенным цветом
- Параметр outline — цвет границ
- Параметр width — размер границ
- Рисование эллипса и прямоугольника в Python
Видео:How to draw a circle using turtle in Python #shorts #TheBrokodeСкачать
Рисование кругов с Python
Способ по умолчанию для создания кругов с Python Turtle Graphics – это просто использовать круг Способ, как в следующем примере.
Это хорошо для многих целей, но он может быть расстраивает, поскольку он не дает вам контроль над тем, где находится центр круга. Обратите внимание, как в примере выше круг нецентрирован в расположении черепахи (называется toby ), который вступил в существование в расположении по умолчанию (0, 0) Отказ Используя метод по умолчанию, круг вытягивается из глянцевой точки, поэтому отправная точка находится на окружности.
Видео:Рисование на python turtle | библиотека turtle | Как рисовать с помощью turtle?Скачать
Чертежные круги сосредоточены на (x, y)
Следующая программа демонстрирует, как рисовать круги, сосредоточенные в определенные (х, у) координаты. Это делает это с помощью функции draw_circle () который принимает несколько аргументов, как описано в коде.
Используя эту функцию, относительно легко нарисовать цель луки. Смотрите программу ниже.
Эта программа использует множество функций, которые вы можете использовать в своих собственных программах. Вы можете использовать столько же, сколько вам нравится, но экспериментируйте с идеями. Если у вас нет много идей, попробуйте просто внести небольшие изменения, такие как изменение цветов или размеров кругов. Некоторые из цветов, доступных в Python Turtle Graphics, можно найти здесь Отказ
Видео:Уроки Python / Рисуем с помощью черепашки / Подключение модуля turtleСкачать
Следующий уровень
Этот раздел содержит более современные методы программирования Python, поэтому, если вы являетесь относительным новичком, вы можете оставить его на дальше.
Например, это включает в себя
- Обнаружение событий с Python Turtle Graphics
- Функции обратного вызова события
- Передача дополнительных аргументов обратным вызовам, используя лямбда
Здесь есть много ингредиентов, что вы можете использовать в своих собственных проектах. Как и прежде, перейдите вперед и отредактируйте биты программы или используйте биты в собственном проекте. Программа в настоящее время не игра как такая, но я ожидаю, что это может быть сделано в один. Можете ли вы думать о том, как? Я думаю, что какое-то случайное позиционирование крестов или рефлекторной тестирования. В этой статье мы не посмотрели таймеры и анимации, но наверняка они возможно с графикой Python Turtle. Может быть, идея, которую вы можете стать возможными с небольшим количеством знаний, поэтому, возможно, сделать записку и вернуться к нему позже. Если у вас есть идея, с которой вы хотите помочь, дайте мне знать в комментариях, и я посмотрю, смогу ли я помочь.
Этот урок показал вам, как рисовать круги, используя графику Python Turtle, а затем, как улучшить основную функциональность и добавлять некоторые интерактивные функции. Я надеюсь, что вы нашли это весело и интересно.
Видео:Знакомство с модулем Turtle | Программирование на PythonСкачать
«Черепашья графика» при помощи turtle, рисование при помощи алгоритма
Черепашья графика, turtle – принцип организации библиотеки графического вывода, построенный на метафоре Черепахи, воображаемого роботоподобного устройства, которое перемещается по экрану или бумаге и поворачивается в заданных направлениях, при этом оставляя (или, по выбору, не оставляя) за собой нарисованный след заданного цвета и ширины.
Проще: черепашка ползает по экрану и рисует. Мы управляем черепашкой на плоскости при помощи программы.
Видео:Рисуем олимпийские кольца Turtle | Программирование на PythonСкачать
Начало работы. Движения
В первой строке необходимо добавить:
Мы командуем черепашкой простыми словами на английском языке. left, right – поворот налево и направо, forward и backward – движение вперед и назад. В программе каждое действие – вызов функции из модуля turtle. Простая программа:
- Поворот направо на 90 градусов
- Движение вперед на 100 шагов (пикселей)
- Поворот налево на 90 градусов
- Движение назад на 100 шагов
Не похоже на черепашку, это ползающая стрелка! Исправим это:
Отлично! Теперь это черепашка, пусть и монохромная. Дополнительно, функция exitonclick() позволяет закрыть окно и завершить выполнение программы кликом мышкой по окну.
А еще можно использовать сокращенные названия функций: fd(100) вместо forward(100), rt вместо right, lt вместо left, bk вместо backward.
Видео:Уроки Python / Модуль tkinter (рисование линий, прямоугольников)Скачать
Геометрические фигуры
Рисуем простые геометрические фигуры:
- Прямая: просто движение вперед
- Квадрат: вперед, поворот на 90 градусов и так 4 раза. Повторение команд – значит, можно выполнить их в цикле for!
- Пятиконечная звезда: вперед, поворот на 144 градусов и так 5 раз.
Если мы хотим выполнить инструкции n раз, мы пишем их в цикле
Далее идут инструкции с отступом в 4 пробела. Код с отступами – тело цикла. Когда цикл завершается, отступы больше не ставятся.
Скучно рисовать одинокие фигуры. Поэтому мы приготовились рисовать сразу несколько и теперь создаем отдельный экземпляр класса Turtle для каждой фигуры. Так мы можем менять цвет линии и другие параметры отдельно для каждой фигуры. Потом, когда мы захотим дорисовать или изменить параметры фигуры, у нее будут сохранены старые параметры. Их не надо будет устанавливать заново, как это было бы без отдельных экземпляров класса для каждой фигуры.
Звезда рисуется также:
Самостоятельно:
- Нарисуйте пятиконечную звезду (угол поворота 144 градуса).
- Квадрат и звезду в одной программе, на одном графическом поле, но с разными экземплярами класса Turtle.
- Восьмиконечную звезду (угол поворота 135 градусов).
- Фигуру из анимации в начале страницы.
Видео:15. Рисуем простые фигуры с помощью черепашки (Turtle). Основы PythonСкачать
Решения
Видео:Какие ещё фигуры можно нарисовать одним циклом в turtle Python?Скачать
Изменяем параметры во время движения
При отрисовке простых фигур черепашка возвращалась в исходную точку, и программа останавливалась, ожидая, когда будет закрыто окно. Если в цикле продолжить рисовать по прежним инструкциям, фигура будет нарисована заново по уже нарисованным контурам. А если ввести дополнительный угол поворота?
Мы также добавили:
- color(‘red’, ‘green’) определяет цвет линии и цвет заполнения. Черепашка теперь зеленая!
- begin_fill() и end_fill() обозначают начало и конец заполнения
Больше программирования!
Напишем обобщенную программу рисования выпуклых равносторонних многоугольников. num_sides – количество граней, side_length – длина грани, angle – угол поворота.
Что будет, если на каждом шаге увеличивать длину пути? В первый день 10 шагов, во второй – 20, далее 30, 40 и так до 200:
Видео:python turtle #python #turtle #shortСкачать
Координаты на плоскости
Положение на плоскости определяется двумя числами, x и y:
Черепашку в программе можно перемещать функцией goto(x, y). x и y – числа, или переменные. goto(0, 0) переместит черепашку в начало координат.
Вместо звезды-спирали мы получили 5 линий, расходящихся из точки начала координат.
Круг и точка
Не хватает плавных изгибов? На помощь приходят функции dot() и circle():
- изменили заголовок окна функцией title(),
- установили толщину линии – pensize(),
- установили цвет линии – pencolor(),
- Подняли черепашку перед перемещением – penup() и опустили после – pendown().
Самостоятельно:
- Используя код из примеров и функцию goto(), нарисовать галерею из 5 или более многоугольников на одном поле. Использовать экземпляр класса turtle.Turtle().
- Нарисованные многоугольники закрасить разными цветами. Пробуйте стандартные цвета или их шестнадцатеричное представление. Не забудьте кавычки вокруг названия или кода цвета!
Видео:Управление черепашкой (turtle) с помощью клавиатуры python (питон)Скачать
Решения
Видео:Amazing Rotating Python Graphics Design using Turtle 🐢 #python #pythonshorts #coding #viral #designСкачать
Делаем фигуры равновеликими
Площадь квадрата со стороной 100 пикселей – 10 000 квадратных пикселей. Вычислим площади всех фигур со стороной 100 от треугольника до 7-угольника. Формула площади правильного многоугольника содержит тангенс, поэтому «поверим на слово» результату, зависимости количество углов (вершин) – площадь:
- 3 – 4330.13
- 4 – 10000
- 5 – 17204.77
- 6 – 25980.76
- 7 – 36339.12
Изобразим ее на графике:
Получается, что площадь 7-угольника в 36339.12 / 4330.13 = 8.4 раза больше, чем площадь треугольника! Это очень заметно на рисунке:
Чтобы фигуры стали равновеликими, надо сделать длину грани вместо константы 100 – переменной, которая зависит от количества углов.
Как: приведем все площади к 10000. Для треугольника площадь увеличится на 10000 / 4330.13 = 2.31 раза. Для 7-угольника – уменьшится в 36339.12 / 10000 = 3.63 раз. Значит, стороны должны измениться в 1.52 и 0.52 раз соответственно, то есть, до 152 и 32.7 пикселей (снова «верим на слово»). Эту зависимость можно нащупать «на глаз», в чем и заключалось задание.
Наша программа без труда масштабируется до большего количества фигур:
Программа, в которой вычисляются точные значения:
Как построить график (если кто захочет):
Видео:How to draw a triangle using turtle in PythonСкачать
Другие полезные функции:
- turtle.setup(800, 400) устанавливает размеры окна в 800 на 400 пикселей
- turtle.setworldcoordinates(0, 0, 800, 400) устанавливает начало координат в точку 800, 400
- turtle.tracer(0, 0) отключает анимацию
- setpos(x, y) устанавливает черепашку (курсор) в позицию с координатами (x, y)
- seth(x) устанавливает направление в градусах. 0 – горизонтально направо (на восток), 90 – вверх (на север) и так далее
- hideturtle() скрывает черепашку (или стрелку, курсор)
- speed(x) изменяет скорость рисования. Например, speed(11) – почти моментальная отрисовка простых фигур
- clear() очищает холст от нарисованного
- reset() очищает холст и возвращает курсор в начало координат
Пример двух рисунков – экземпляров класса Turtle() – на одном полотне
- Задали название окна,
- создали экземпляр класса Turtle под именем circ. Все изменения сохраняются для класса circ;
- цвет линии и заполняющий цвет,
- форму и размер курсора,
- установили 10-ю скорость
- продвинулись на 150 пикселей вперед от старта,
- начали заполнять фигуру цветом,
- нарисовали круг
- закончили заполнять цветом,
- Объявили переменную n и присвоили ей значение 10,
- создали новый экземпляр класса Turtle под именем t. У него нет настроек экземпляра класса circ!
- В цикле while: пока переменная n меньше или равна 50, рисовать круги радиусом n;
- после нарисованного круга увеличить переменную n на 10.
- Алгоритм рисования кругов прекратит рисовать круги после 4-го круга.
Итог: функции и классы на примере turtle
- Функция – фрагмент программного кода, к которому можно обратиться по имени. Иногда функции бывают безымянными.
- У функции есть входные и выходные параметры. Функция fd(150) – фрагмент программного кода, который двигает курсор вперед на заданное во входном значении количество пикселей (150). Выходного значения у функции fd() нет.
- Когда функцию надо выполнить, после ее названия пишут круглые скобки. fd – просто название, ничего не происходит. fd(100) – функция выполняется с входным параметром 100. Обычно названия функций пишут с маленькой буквы.
- Класс – программный шаблон для создания объектов, заготовка для чего-то, имеющего собственное состояние. Мы можем нарисовать прямоугольник и назвать его кнопкой, но это еще не кнопка, потому что у нее нет собственных свойств и поведения. Прямоугольник надо научить быть самостоятельной, отличной от других, кнопкой.
- Turtle – класс, его имя пишется с большой буквы. через оператор присваивания = мы создаем экземпляр класса: circ = turtle.Turtle(). Turtle – класс (шаблон, трафарет, заготовка), circ – его экземпляр (рисунок, набор уникальных цветов, штрихов и свойств). На картинке выше видно, что экземпляр класса circ богат установленными свойствами, а экземпляр t обладает свойствами по умолчанию: тонкая черная линия, треугольный курсор.
- Программирование с использованием классов и их экземпляров будем называть объектно-ориентированным программированием, ООП. объектно-ориентированный подход необходим при построении графического интерфейса пользователя, GUI.
Видео:Рисование turtle на холсте tkinter в pythonСкачать
Графический интерфейс средствами библиотеки turtle.
Нарисуем прямоугольник и сделаем его кнопкой: при нажатии кнопка исчезает и появляется круг:
- Задали название и размеры (500 на 500 пикселей) окна,
- Создали экземпляр класса btn1 и спрятали курсор (черепашку),
- Нарисовали прямоугольник 80 на 30;
- подняли перо и перешли на координаты (11, 7);
- написали Push me шрифтом Arial 12-го размера, нормальное начертание. Попробуйте вместо normal ключевые слова bold (полужирный), italic (наклонный);
Видео:Рисуем правильные многоугольники turtrle | Программирование на PythonСкачать
Рисуем геометрические фигуры в Python с помощью Pillow
Модуль ImageDraw из библиотеки обработки изображений Pillow (PIL) предоставляет методы для рисования круга, квадрата и прямой линии в Python.
Содержание статьи
Видео:Как нарисовать звезду turtle | Программирование на PythonСкачать
Создание объекта Draw в Python
Используя объекта Image мы создадим фоновое изображение на которой мы будем рисовать наши фигуры при помощи объекта Draw . Не забудьте импортировать модуль Image и ImageDraw в начале кода.
Здесь создается пустое изображение с размером 500 на 300 пикселей и с тёмно желтым фоном.
Видео:Как нарисовать круг с помощью turtle(Python)Скачать
Рисуем фигуры в Pillow: ellipse, rectangle и line
Вызываем методы рисования из объекта Draw для рисования фигур на нашем желтом фоне.
Рисуем эллипс, прямоугольник и прямую линию в качестве примера.
Видео:Draw Overlap circle in Python Turtle graphicСкачать
Справочник по параметрам методов рисования
Даже если, способы рисования отличаются в зависимости от используемого метода, следующие параметры являются общими для всех.
Область рисования — xy
Параметр xy указывает прямоугольную область для рисования новой фигуры.
Уточняется один из следующих форматов:
- (((Верхняя левая x координата, Верхняя левая y координата), (нижняя правая x координата, нижняя правая y координата)) ;
- (Верхняя левая x координата, Верхняя левая y координата, нижняя правая x координата, нижняя правая y координата) .
В методах line() , polygon() и point() используются многочисленные координаты вместо двух точек, представляющих прямоугольную область.
Метод line() рисует прямую линию, которая связывает каждую точку, polygon() рисует многоугольник, а метод point() рисует точку в 1 пиксель для каждой указанной точки.
Параметр fill — заполняем фигуру определенным цветом
Параметр fill указывает какой цвет будет использован для заполнения нашей геометрической формы.
Спецификация формата цвета отличается в зависимости от указанного режима изображения (объект Image ):
- RGB : Указывает значение цвета в форме (R, G, B) ;
- L (Черно-белое): Указывает значение (0-255) как целое число).
Значение по умолчанию None (не заполнено).
Есть три способа указать цвет, возьмем красный цвет, его можно записать так:
- текстовый формат: red;
- CSS формат (Шестнадцатеричный): #FF0000
- RGB: (255, 0, 0)
Стоит учесть тот факт, что текстовый формат не имеет все цвета, кол-во доступных цветов ограничено в коде самой библиотеки. Вот весь список: https://github.com/python-pillow/Pillow/blob/8.1.0/src/PIL/ImageColor.py#L148
Лучше всего использовать шестнадцатеричный формат #FFFFFF (белый).
Параметр outline — цвет границ
Параметр outline указывает на цвет границы фигуры.
Спецификация формата цвета такая же, как и у параметра fill которого мы обсуждали выше. Значение по умолчанию равно None (без границ).
Параметр width — размер границ
Вне зависимости от рисуемой фигуры, вы можете указать размер в пикселях для границы фигуры.
Рисование эллипса и прямоугольника в Python
- Эллипс (Круг): ellipse(xy, fill, outline) ;
- Прямоугольник (Квадрат): rectangle(xy, fill, outline) .
Метод ellipse() рисует эллипс, область рисования указывается в параметр xy . Если мы зададим четыре координата которые будут соответствовать квадрату, то у нас получится ровный круг.