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

автор

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

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

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

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

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

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

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

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


Остальные фигуры могут быть созданы с использованием базовых примитивов.

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

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

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

Заливка

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

Цвет

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

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

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

Узоры

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

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

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

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

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

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

Вам может быть интересно

Scroll Up