Фигуры и заливка в PyCairo [Урок №4]

В этой части учебного материала, мы будем создавать базовые и более сложные фигуры. Эти фигуры мы будем заливать сплошным цветом, а также применять узоры и градиенты. Градиенты будут рассмотрены подробнее в отдельной главе. Изображения, используемые в данном учебном материале можно скачать здесь.

Базовые фигуры

В PyCairo существует несколько базовых методов для создания простых фигур.

В данном примере мы создадим прямоугольник, квадрат, круг дугу и эллипс.

Метод rectangle() применяется как при создании квадратов, так и прямоугольников. Квадрат представлен в виде специфической формы прямоугольника. Параметры координат заданы как х и у в левом верхнем углу окна и отвечают за ширину и высоту прямоугольника.

Метод arc()  создает круг. Параметры х и у являются координатами центра дуги, радиусом, а также начальными и конечными углами в радианах.

Здесь мы проводим дугу, часть окружности.

Методы scale()  и arc() применяются для создания эллипса.

Фигуры и заливка в PyCairo [Урок №4]
Остальные фигуры могут быть созданы с использованием базовых примитивов.

В этом примере мы создадим звезду, треугольник и модифицированный треугольник. Эти фигуры созданы при помощи линий и одной кривой.

Чтобы нарисовать звезду мы соединили все точки, находящиеся в точечном кортеже. Метод fill() заполняет звезду сплошным цветом.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Линии формируют треугольник. Последние две точки соединяются автоматически.

Фигуры и заливка в PyCairo [Урок №4]

Заливка

Заливка заполняет внутреннее пространство фигуры. Фигуру можно залить сплошным цветом, узором или градиентом.

Цвет

Цвет является сочетание красного, зеленого и синего с разной степенью интенсивности. В PyCairo интенсивность этих цветов варьируется от 0 до 1.

В данном примере мы нарисовали четыре закрашенных прямоугольника.

Метод set_source_rgb()  задает исходник (source) в непрозрачном цвете. Параметрами является интенсивность красного, зеленого и синего. Исходник заполняет пространство прямоугольника с применением метода fill().

Фигуры и заливка в PyCairo [Урок №4]

Узоры

Узором называют комплекс графических объектов, которые можно использовать для заливки фигур.

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

Мы создали поверхности изображения вне метода draw() . Так как было бы проблематично считывать с жёсткого диска каждый раз, когда окно нужно перерисовать.

Поверхностное изображение в нашем случае создано из PNG картинки.

Узор создан на основе поверхности. Мы применяем режим, cairo.EXTEND_REPEAT  который позволяет узору заполнить пространство «плиткой».

Здесь мы рисуем наш первый прямоугольник. Метод set_source()  указывает контексту Cairo на то, что данный узор используется как средство для заливки. Узор может не соответствовать в точности форме фигуры. Метод rectangle()  указывает на то, что мы работаем именно с прямоугольной фигурой. И, наконец, метод fill()  заполняет фигуру используемым исходником.

Фигуры и заливка в PyCairo [Урок №4]