如何在织物js中找出Polygon的绝对坐标?

时间:2016-03-03 13:49:10

标签: javascript fabricjs

如果我在缩放或移动后得到分数,我会得到一些错误的观点。 如何在织物js中找出Polygon的绝对坐标?

var onObjectScaling = function(eventObj) {
        if (target.type === 'dpolygon') {
            target.minX *= target.scaleX;
            target.minY *= target.scaleY;
            var maxX = target.minX;
            var maxY = target.minY;
            angular.forEach(target.points, function (v) {
                v.x *= target.scaleX;
                v.y *= target.scaleY;
                maxX = Math.max(maxX, v.x);
                maxY = Math.max(maxY, v.y);
            });
        }
};

2 个答案:

答案 0 :(得分:1)

最后,经过一些尝试,我找到了一种计算绝对坐标的正确方法

angular.forEach(object.points, function(point) { 
   point.x = object.left + (point.x - object.minX); 
   point.y = object.top + (point.y - object.minY); 
});

答案 1 :(得分:0)

@Andrei的解决方案对我不起作用。

相反,我发现了两种解决方案,可能对某人有所帮助。

在布料2.0之前,多边形点是相对于其中心的,您想通过以下操作来计算坐标:How to get polygon points in Fabric.js

2.0之后,多边形点在画布上是绝对的,这将有助于:How does transforming points with a transformMatrix work in fabricJS?

就我而言,我使用2.3.6,以后的解决方案对我有效。