有没有办法填充封闭路径(多边形)之外的所有内容?
背景:我想用海岸线渲染一些地图 - 所以有时我需要用蓝色填充海洋,所以我认为这是最简单的,在我的情况下最有效的填充海岸线以外的一切蓝色多边形。
提前致谢!
答案 0 :(得分:2)
您可以将覆盖整个绘图区域的矩形添加到海岸线路径,并将填充规则设置为cairo.FILL_RULE_EVEN_ODD
。在此之后调用fill()
填充原始路径之外的区域。 (如果为矩形选择了正确的方向,则可以跳过设置填充规则。)
答案 1 :(得分:0)
在整个开罗表面上画一个大的蓝色矩形,然后画上你的海岸线?
答案 2 :(得分:0)
虽然你可以创建一个表面大小的封闭路径,然后用solidpattern填充它(填充规则对于一个简单的矩形无关紧要),它会更容易使用上下文paint()方法将填充当前剪辑区域(最初设置为整个表面)。在绘制地图/海岸线边界并填充它们之前执行此操作非常重要,这样它们才能在背景之上。