Вопрос

Есть ли способ заполнить все за пределами закрытого пути (многоугольник)?

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

Заранее спасибо!

Это было полезно?

Решение

Вы можете добавить прямоугольник, покрывающий всю область чертежа к вашей береговой дорожке, и установить правило заполнения на cairo.FILL_RULE_EVEN_ODD. Анкет Вызов fill() После того, как это заполняет область за пределами вашего первоначального пути. (Если вы выберете правильную ориентацию для прямоугольника, вы можете пропустить настройку правила заполнения.)

Другие советы

Нарисуйте большой синий прямоугольник по всей поверхности Каира, а затем нарисуйте береговую линию на вершине этого?

Пока ты мог Создайте закрытый путь по размеру поверхности, а затем заполните его солидным: правилом заполнения не будет иметь значения для простого прямоугольника), было бы проще просто использовать метод контекстного Paint (), который заполнит текущую область зажима (Это изначально установлено на всю поверхность). Важно сделать это, прежде чем рисовать границы карты/береговой линии и заполнить их, чтобы они были на фоне.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top