#fabricjs
Вопрос:
В основном я пытаюсь отредактировать полигон. Как только объект выбран, вы нажимаете кнопку «Изменить» (см. раздел Функция редактирования), которая создает некоторые дескрипторы. Это работает, и ручки находятся в нужном месте. Однако, когда я перемещаю маркеры, я не могу заставить полигон изменить форму.
moveTransformHandle = (e) =gt; { let circleIndex = canvas.getActiveObject().circleNo let points = editPolygon.get("points") points[circleIndex].x = canvas.getActiveObject().left points[circleIndex].y = canvas.getActiveObject().top editPolygon.set({ points: points }) canvas.requestRenderAll(); } Edit() { var poly = canvas.getActiveObject() poly.edit = !poly.edit; if (poly.edit) { editPolygon = poly var matrix = poly.calcTransformMatrix(); var transformedPoints = poly.get("points") .map(function (p) { return new fabric.Point( p.x - poly.pathOffset.x, p.y - poly.pathOffset.y ); }) .map(function (p) { return fabric.util.transformPoint(p, matrix); }); transformedPoints.forEach((element, index) =gt; { let radius = 8 let circle = new fabric.Circle({ radius: radius, fill: 'red', left: element.x - radius, top: element.y - radius, hasControls: false, circleNo: index }); circle.on("moving", this.moveTransformHandle); canvas.add(circle) }); } poly.hasControls = !poly.hasControls poly.hasBorders = !poly.edit; canvas.requestRenderAll(); }