开罗用填充图案填充多边形

Cairo fill a polygon with a hatch pattern

cairo 是否可以用像下面这样的影线(或任意)图案填充一个盒子或一个多边形?我没有在 cairo 文档或 hackage 中找到信息。

我正在使用 haskell,但任何语言的代码段都会有所帮助。

cairo_pattern_t *pattern = create_stipple ("lightgrey", (guchar *)stipple_data);
cairo_matrix_init_scale (&matrix, 1.0, 1.0);
cairo_pattern_set_matrix (pattern, &matrix);
some_shape = GOO_CANVAS_RECT (goo_canvas_rect_new (GOO_CANVAS_ITEM (group), 10.0, 10.0, 10.0, 10.0, "fill-pattern", pattern, "visibility", GOO_CANVAS_ITEM_INVISIBLE, NULL));
cairo_pattern_destroy (pattern);

取自我的一个宠物项目oregano @ github

另请查看 cairo API reference,其中也涵盖了通用模式 API