Этот 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,
}));
У меня проблемы с ограничивающей рамкой ромба, которая не позволяет пользователю выбрать круг. Я хотел бы, чтобы пользователь мог выбрать круг, щелкнув его часть, которая видна из-за ромба.
Есть ли способ сообщить ткани, что я хочу, чтобы ограничивающая область многоугольника была только областью, на которую влияет цвет заливки? т.е. чтобы можно было нажать на кружок?
Обратите внимание, что это слишком упрощенный пример моего варианта использования. Мой реальный многоугольник сложнее, чем простой ромб, поэтому вместо него нельзя было бы использовать повернутый прямоугольник.