(py)cairo - 填充

时间:2010-11-16 08:48:08

标签: python cairo pycairo

有没有办法填充封闭路径(多边形)之外的所有内容?

背景:我想用海岸线渲染一些地图 - 所以有时我需要用蓝色填充海洋,所以我认为这是最简单的,在我的情况下最有效的填充海岸线以外的一切蓝色多边形。

提前致谢!

3 个答案:

答案 0 :(得分:2)

您可以将覆盖整个绘图区域的矩形添加到海岸线路径,并将填充规则设置为cairo.FILL_RULE_EVEN_ODD。在此之后调用fill()填充原始路径之外的区域。 (如果为矩形选择了正确的方向,则可以跳过设置填充规则。)

答案 1 :(得分:0)

在整个开罗表面上画一个大的蓝色矩形,然后画上你的海岸线?

答案 2 :(得分:0)

虽然你可以创建一个表面大小的封闭路径,然后用solidpattern填充它(填充规则对于一个简单的矩形无关紧要),它会更容易使用上下文paint()方法将填充当前剪辑区域(最初设置为整个表面)。在绘制地图/海岸线边界并填充它们之前执行此操作非常重要,这样它们才能在背景之上。