用孔填充多边形

时间:2018-08-18 09:28:10

标签: shapely pycairo

我有一个匀整的多边形孔,我想用pycairo填充。

有没有简单的方法可以将此多边形拆分为多个没有孔且覆盖同一表面的多边形?

或者有没有更好的方法使用pycairo填充具有孔的多边形?

1 个答案:

答案 0 :(得分:0)

我想出了使用cairo裁剪功能的解决方案:

def fill_polygon(self, context, polygon):
    context.set_fill_rule(cairo.FILL_RULE_EVEN_ODD)

    poly = polygon.exterior
    for x, y in poly.coords:
        context.line_to(x, y)
    context.clip_preserve()

    for poly in polygon.interiors:
        context.move_to(*poly.coords[-1])
        for x, y in poly.coords:
            context.line_to(x, y)

    context.fill()
    context.reset_clip()