(py) Каир - заполнить - PullRequest
       5

(py) Каир - заполнить

3 голосов
/ 16 ноября 2010

есть ли способ заполнить все, что находится за пределами замкнутого пути (многоугольника)?

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

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

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

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

0 голосов
/ 16 ноября 2010

Хотя вы могли бы создать замкнутый путь размером с поверхность и затем заполнить его сплошным шаблоном (правило заполнения не имеет значения для простого прямоугольника), было бы проще использоватьМетод context paint (), который будет заполнять текущую область клипа (которая изначально установлена ​​на всю поверхность).Это важно сделать перед тем, как нарисовать границы карты / береговой линии и заполнить их так, чтобы они были поверх фона.

0 голосов
/ 16 ноября 2010

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

...