我正在开发基于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(不是整数索引)。所以现在如果我得到小数点的索引,我怎么能以相等的间隔获得点数。