2014-02-07 3 views
4

Я использую Fabric.js для создания простого приложения для рисования. Одной из особенностей, с которой у меня возникают проблемы, является инструмент Bucket Tool.Как заполнить пересечение двух объектов в Fabric.js?

Объекты могут быть заполнены цветом, используя Fabric.js с canvas.item(0).fill = "red" Однако я хочу, чтобы иметь возможность заполнить пересечение [C] двух объектов [A, B].

Example

ли знает кто-нибудь, как добиться этого? Я искал примеры и учебные пособия о том, как реализовать это, и многие указывают на «Flood Fill», но я не думаю, что он может быть реализован с помощью Fabric.js

Любая помощь была бы любезно оценена!

ответ

2

Когда вы можете получить пиксельный растровый объект всего холста, должно быть возможно реализовать заливку заливки. Но если вы хотите остаться в векторном мире, вам понадобятся логические операции, чтобы получить все пересекающиеся фигуры всех фигур, на которых витает ваше ведро. После этого вы можете просто установить цвет фона этой поверхности пересечения.

Я не эксперт по тканям, поэтому я понятия не имею, поддерживает ли он это. Для библиотек рисования javascript, которые имеют логические операции, проверьте это question.

+0

Thanks @Christoph. Ты указал мне в правильном направлении. Я реализовал холст, который содержит растровые векторы, созданные с помощью FabricJS, затем запустил заливку Flood, а затем поместил вновь цветные пиксели в качестве изображения обратно в холст FabricJS, так как нет возможности выполнять логическую операцию с двумя или более объекты в FabricJS (по крайней мере, не то, что я знаю) –

+0

Можете ли вы показать мне, как вы применили Flood Fill? – Glund

Смежные вопросы