以下数组包含子数组(每个子数组是 HTML5 画布上的一对坐标):
var myArray = [[364, 124],
[192, 272],
[209, 217],
[332, 227],
[241, 273],
[356, 387],
[104, 185],
[361, 380],
[297, 390],
[371, 311],
[191, 293]];
如何比较每对坐标并确保每个值至少相距 10。
例如:比较数字 272(来自索引为 1 的数组)和数字 273(来自索引为 4 的数组) - 因为只有 1 相隔,所以将 10 添加到一个值。
这是我尝试过的:
在这里,我随机生成数字,但我只能与最后生成的对相关。
function crosses(){
var crossx, crossy, oldCrossx, oldCrossy, col;
for(var i=0; i<=10; i++){
crossx = randomFromInterval(100, xw-100);
crossy = randomFromInterval(100, xh-100);
if(crossesPos.length > 0){
oldCrossx = crossesPos[i-1][0];
oldCrossy = crossesPos[i-1][1];
if(crossx - oldCrossx < 20){
crossx += 10;
}
if(crossx - oldCrossx < -20 ){
crossx -= 10;
}
if(crossy - oldCrossy < 20){
crossy += 10;
}
if(crossy - oldCrossy < -20 ){
crossy -= 10;
}
}
}
因此,我正在考虑一种新方法,并在生成所有数字并且已经在数组中之后更改数据。
我在想我采取了错误的方法:
也许我需要一种更好的方法来生成数字——现在我正在使用这个函数来生成特定间隔之间的数字。
function randomFromInterval(from,to){
return Math.floor(Math.random()*(to-from+1)+from);
}