В некотором коде Ruby, который использует Cairo, мне нужно нарисовать несколько заливок по одному пути.Это часть графического приложения, где несколько заливок могут накладываться друг на друга с использованием разных режимов наложения.
Каждая заливка рисуется с использованием 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
через Google Translate, но не могу ее найти.(Документы на японском языке!)
Как вручную очистить текущий путь контекста Каира?