(py)cairo - 填充

5 投票
3 回答
1170 浏览
提问于 2025-04-16 07:08

有没有办法把一个封闭路径(多边形)外面的区域填充颜色呢?

背景:我想制作一些带有海岸线的地图——所以有时候我需要把海洋填充成蓝色。为了简单起见,我觉得在我的情况下,最有效的方法就是把这个海岸线多边形外面的区域填充成蓝色。

提前谢谢你们!

3 个回答

0

虽然你可以创建一个和表面一样大的封闭路径,然后用一个实心图案填充它(对于简单的矩形,填充规则并不重要),但其实直接使用上下文的paint()方法会更简单,这样可以填充当前的剪切区域(一开始这个区域是整个表面)。在绘制地图或海岸线边界并填充它们之前,先做这个步骤是很重要的,这样它们才能显示在背景的上面。

0

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

4

你可以在你的海岸线路径上添加一个覆盖整个绘图区域的矩形,并把填充规则设置为 cairo.FILL_RULE_EVEN_ODD。在这之后调用 fill() 方法,就会填充你原始路径外面的区域。(如果你选择了正确的矩形方向,就可以不设置填充规则。)

撰写回答