【发布时间】:2018-08-18 09:28:09
【问题描述】:
我有一个带孔的形状多边形,我想用 pycairo 填充它。
有没有一种简单的方法可以将该多边形分割成多个覆盖同一表面的无孔多边形?
或者有没有更好的方法来使用 pycairo 用孔填充多边形?
【问题讨论】:
我有一个带孔的形状多边形,我想用 pycairo 填充它。
有没有一种简单的方法可以将该多边形分割成多个覆盖同一表面的无孔多边形?
或者有没有更好的方法来使用 pycairo 用孔填充多边形?
【问题讨论】:
我想出了一个使用 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()
【讨论】: