如何用fabric.js测量折线?

时间:2015-11-17 12:08:22

标签: javascript fabricjs

我想用面料js(或常规js)测量折线。到目前为止,我可以绘制折线,但它只测量从mousedown到mouseup的距离,而不是测量整个线距。例如,如果我要绘制一个圆,它将返回'0'表示距离,因为起点和终点是相同的,而我想测量圆周长。这是代码:

                    var Calculate = {
                        lineLength: function (x1, y1, x2, y2) {
                            return normalizedSize * (Math.sqrt(Math.pow(x2 * 1 - x1 * 1, 2) + Math.pow(y2 * 1 - y1 * 1, 2)));
                        }
                    }

1 个答案:

答案 0 :(得分:0)

Fabric.Polyline.points包含定义折线的所有点。

不是使用鼠标光标进行测量,而是将新点添加到折线,然后根据缺点进行计算:

var Calculate = {
    lineLength: function (line) {
        var distance = 0;
        for (var i=0; i < line.points.length - 1; i++) {
            var p1 = line.points[i];
            var p2 = line.points[i + 1];
            distance += normalizedSize * (Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)));
        }
        return distance;
    }
}

这应该正确计算线距。