Вот один из способов сделать вырез-многоугольник на FabricJS:
AFAIK, FabricJS еще не поддерживают композитинга необходимо создать вырезы из своих полигонов , так что обходной путь.
Нарисуйте многоугольник выреза на холсте html5. For example
- Нарисуйте многоугольник из указанных вами точек.
.globalCompositeOperation='destination-out'
. Это приведет к тому, что все новые чертежи будут действовать как «ластик» и вырезают любые существующие пиксели под новыми чертежами.
- Нарисуйте вырез из указанных вами точек.
Используйте html5-холст в качестве источника изображения для нового Fabric.Image
.
// Create your polygon with transparent cuts on this html5 canvas
// Use destination-out compositing to "punch holes" in your polygon
var html5canvas=document.getElementById('myhtml5CanvasElement');
// then use the html5 canvas as an image source for a new Fabric.Image
var c=new Fabric.Image(html5Canvas);
html5 холст может быть источником изображения для 'Fabric.Image'. Чтобы это было просто, если вы можете нарисовать свою форму желания на холсте html5, сделайте это и создайте Fabric.Image с холста. – markE
@markE .. Нет .. Я хочу создать полигон программно с отверстиями. У меня есть точка координат для многоугольника и его отверстий. как это сделать ..? –
Понял! AFAIK, FabricJS пока не поддерживает композицию, необходимую для создания вырезов из своих полигонов. Мой комментарий - обходной путь, и я опубликовал информацию о реализации в ответе. Ура! – markE