FabricJS - Выбор полигона в незанятом пространстве

Этот JSFiddle показывает две формы; круг и ромб (который нарисован как многоугольник):

var canvas = new fabric.Canvas('c');

canvas.add( new fabric.Circle({ 
        top: 10,  left: 10,
        radius: 15,
        fill: 'orange'
    }));


canvas.add( new fabric.Polygon(
        [
            {x: 50, y: 0},
            {x: 100, y: 100},
            {x: 50, y: 200},
            {x: 0, y: 100}
        ],{ 
        fill: 'red',
        hasBorders: false, hasControls: false, hasRotatingPoint: false, lockMovementX: true, lockMovementY: true,
    }));

У меня проблемы с ограничивающей рамкой ромба, которая не позволяет пользователю выбрать круг. Я хотел бы, чтобы пользователь мог выбрать круг, щелкнув его часть, которая видна из-за ромба.

Есть ли способ сообщить ткани, что я хочу, чтобы ограничивающая область многоугольника была только областью, на которую влияет цвет заливки? т.е. чтобы можно было нажать на кружок?

Обратите внимание, что это слишком упрощенный пример моего варианта использования. Мой реальный многоугольник сложнее, чем простой ромб, поэтому вместо него нельзя было бы использовать повернутый прямоугольник.


person jwa    schedule 21.03.2015    source источник


Ответы (1)


Этот вопрос старый и простой, но на него нет ответа.

Я просто оставлю это здесь.

Тебе нужно

perPixelTargetFind: true

JsFiddle

person Sahal Saad    schedule 29.09.2015
comment
Ссылка на документ: http://fabricjs.com/docs/fabric.Polygon.html#perPixelTargetFind - person jmq; 18.03.2016