【发布时间】:2018-12-24 09:32:45
【问题描述】:
在一些使用 Cairo 的 Ruby 代码中,我需要在单个路径上绘制多个填充。这是图形应用程序的一部分,其中可以使用不同的混合模式将多个填充堆叠在一起。
使用fill_preserve 绘制每个填充以保留路径,以便下一次填充可以在同一路径上发生而无需回溯。这有点像这样:
rectangle_data.each do |rectangle_datum|
context.rectangle(*rectangle_datum.rectangle)
fill_data.each do |fill_datum|
context.set_source_rgba(*fill_datum.color)
context.fill_preserve
end
end
问题在于,即使在所有填充发生后,这也会留下路径,这意味着单个形状只是被绘制为一个巨大的填充形状。
要解决这个问题,我只需要手动清除当前路径,但我不知道该怎么做。我通过谷歌翻译查看了Cairo::Context 的文档,但找不到。 (文档是日文的!)
如何手动清除 Cairo 上下文的当前路径?
【问题讨论】: