Svg Path中等间隔的点

时间:2014-07-14 22:00:14

标签: javascript math svg

我正在开发基于svg的应用程序,其中用户绘制路径并使用以下函数将该路径转换为点

path2Array: function(path, incrementer) {

                        var pointsArray = new Array();
                        var add = 1;
                        var point, tx, ty, cordinatesXY;
                        if (incrementer)
                                add = incrementer;

                        var length = Math.ceil(path.getTotalLength());

                        for (var i = 0; i <= length; i += add) {
                                point = path.getPointAtLength(i);
                                tx = Paper.roundDecimalNumber(point.x);// custom rounding function
                                ty = Paper.roundDecimalNumber(point.y);
                                cordinatesXY = {
                                        x: tx,
                                        y: ty
                                }

                                pointsArray.push(cordinatesXY);
                        }


                        return pointsArray;
                }

现在,我想以相等的间隔获得积分。

例如,假设在svg路径中,我的函数返回一个包含

的数组

Total_nodes = 200;

现在我想要相等距离的5个节点,所以我除了200/5 = 40;

for(var i=0;i<points.length;i+=40)
{
var point=points[i];
// do something
}

和i循环使用&#39; 40&#39;增加以等间隔获得5点。

什么没有用,是节点是212.现在如果我除了212/5 = 42.4(不是整数索引)。所以现在如果我得到小数点的索引,我怎么能以相等的间隔获得点数。

0 个答案:

没有答案