Найти в Дзене

День 155. Инструкция Pygame. Рисование графических элементов.

Рисование графических примитивов Модуль pygame.draw позволяет рисовать простые фигуры на поверхности. Это может быть поверхность экрана или любой поверхностный объект, такой как изображение или рисунок: • прямоугольник • многоугольник • круг • эллипс Общим для этих функций является то, что они: • примите объект Surface в качестве первого аргумента • примите цвет в качестве второго аргумента • примите параметр width в качестве последнего аргумента • возвращает прямоугольный объект, который ограничивает измененную область в следующем формате: Большинство функций принимают аргумент width. Если ширина равна 0, то фигура будет заполнена. 2.1 Draw solid and outlined rectangles На следующем рисунке сначала рисуется цвет фона, а затем добавляются три перекрывающихся сплошных прямоугольника и рядом с ними три перекрывающихся прямоугольника с увеличивающейся шириной линии: Попробуйте изменить параметры и поиграть с функцией рисования. 2.2 Нарисуйте сплошные и очерченные эллипсы Следующий код сна

Рисование графических примитивов

Модуль pygame.draw позволяет рисовать простые фигуры на поверхности. Это может быть поверхность экрана или любой поверхностный объект, такой как изображение или рисунок:

• прямоугольник

• многоугольник

• круг

• эллипс

Общим для этих функций является то, что они:

• примите объект Surface в качестве первого аргумента

• примите цвет в качестве второго аргумента

• примите параметр width в качестве последнего аргумента

• возвращает прямоугольный объект, который ограничивает измененную область в следующем формате:

-2

Большинство функций принимают аргумент width. Если ширина равна 0, то фигура будет заполнена.

2.1 Draw solid and outlined rectangles

На следующем рисунке сначала рисуется цвет фона, а затем добавляются три перекрывающихся сплошных прямоугольника и рядом с ними три перекрывающихся прямоугольника с увеличивающейся шириной линии:

-3

Попробуйте изменить параметры и поиграть с функцией рисования.

2.2 Нарисуйте сплошные и очерченные эллипсы

Следующий код сначала рисует цвет фона, а затем добавляет три перекрывающихся сплошных эллипса и рядом с ними три перекрывающихся эллипса с увеличивающейся шириной линии:

-4
-5

2.3 Обнаружение мыши

Нажатие кнопок мыши приводит к появлению событий MOUSEBUTTONDOWN и MOUSEBUTTONUP. Следующий код в цикле обработки событий обнаруживает их и записывает событие в консоль:

-6

Нажатие кнопок мыши приводит к такого рода событиям:

-7

Простое перемещение мыши приводит к возникновению события MOUSEMOTION. Следующий код обнаруживает их и записывает событие в консоль:

-8

Перемещение mosue приводит к такого рода событиям:

-9

Нарисуйте прямоугольник с помощью мыши

Мы можем использовать эти три события, чтобы нарисовать прямоугольник на экране. Мы определяем прямоугольник по начальной и конечной точкам его диагонали. Нам также нужен флажок, который указывает, нажата ли кнопка мыши и рисуем ли мы:

-10

Когда кнопка мыши нажата, мы устанавливаем начало и конец в текущее положение мыши и отмечаем флажком, что режим рисования запущен:

-11

Когда кнопка мыши отпущена, мы устанавливаем конечную точку и отмечаем флажком, что режим рисования завершен:

-12

Когда мышь перемещается, мы также должны проверить, находимся ли мы в режиме рисования. Если да, мы устанавливаем конечное положение на текущее положение мыши:

-13

Наконец, мы рисуем прямоугольник на экране. Сначала мы заполняем цвет фона. Затем мы вычисляем размер прямоугольника. Наконец, мы рисуем его и в последнюю очередь обновляем экран:

-14
-15

Нарисуйте несколько фигур

Чтобы нарисовать несколько фигур, нам нужно поместить их в список. Помимо переменных для начала, конца и рисования, мы добавляем список прямоугольников:

-16

Когда рисование объекта (прямоугольника, круга и т.д.) завершено, как указано в событии нажатия кнопки мыши, мы создаем прямоугольник и добавляем его в список прямоугольников:

-17

В коде рисования мы сначала заполняем цвет фона, затем проходим по списку прямоугольников, чтобы нарисовать объекты (красный, толщина=3), и, наконец, мы рисуем текущий прямоугольник, который находится в процессе рисования (синий, толщина=1).

-18
-19

Вот полный файл:

-20
-21

Нарисуйте многогранную линию с помощью мыши

Чтобы нарисовать линию многоугольника, нам нужно добавить точки в список точек. Сначала мы определяем пустой список точек и флажок рисования:

-22

При нажатии кнопки мыши мы добавляем текущую точку в список и устанавливаем флаг рисования в значение True:

-23

При отпускании кнопки мыши мы отключаем флаг рисования:

-24

При нажатии кнопки МЫШИ мы перемещаем последнюю точку в списке полигонов, если установлен флажок рисования:

-25

Если в списке точек больше двух точек, мы рисуем линию полигона. Каждая функция pygame.draw возвращает прямую линию ограничивающего прямоугольника. Мы выделяем этот ограничивающий прямоугольник зеленым цветом:

-26

Нажатие клавиши ESCAPE приведет к удалению последней точки в списке:

-27
-28

Вот полный файл:

-29
-30