Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取二维数组中两点之间的距离_Javascript_Arrays_Loops_Distance - Fatal编程技术网

Javascript 获取二维数组中两点之间的距离

Javascript 获取二维数组中两点之间的距离,javascript,arrays,loops,distance,Javascript,Arrays,Loops,Distance,我正在计算hillArray[I][0]和hillArray[I+1][0]之间的距离。 我确实意识到,当循环到达最后一次交互时,hillArray[I+1][0]点将无效。我不知道如何解决这个问题 这是我生成点的代码 function randomMap(numOfHills){ hillArray.push([ xMap*0,yMap]); for(var i=0; i<numOfHills; i++){ xRandomForHills = Math.f

我正在计算hillArray[I][0]和hillArray[I+1][0]之间的距离。 我确实意识到,当循环到达最后一次交互时,hillArray[I+1][0]点将无效。我不知道如何解决这个问题

这是我生成点的代码

function randomMap(numOfHills){
    hillArray.push([ xMap*0,yMap]);
    for(var i=0; i<numOfHills; i++){
        xRandomForHills = Math.floor((Math.random() * 1000));
        if(xRandomForHills >= 950){
            xRandomForHills = xRandomForHills - 10;
        }
        if(xRandomForHills <= 50){
            xRandomForHills = xRandomForHills + 10;
        }
        yRandomForHills = Math.floor((Math.random() * 300));
        if(yRandomForHills <= 10){
            yRandomForHills = yRandomForHills + 30;
        }
        hillArray.push([xRandomForHills,yRandomForHills]);

    }
    hillArray.push([xMap,yMap]);
    sortArray(numOfHills);
};
函数随机映射(numOfHills){
hillArray.push([xMap*0,yMap]);
对于(变量i=0;i=950){
xRandomForHills=xRandomForHills-10;
}

如果(xRandomForHills找到了答案,我使用模块

var l = array.length;

var current = array[i];
var previous = array[(i+l-1)%l];
var next = array[(i+1)%l];

发现下面的答案是计算两点之间距离的公式

公式是

Math.sqrt(Math.pow(Math.abs(x1-x2),2) + Math.pow(Math.abs(y1-y2),2)+ Math.pow(Math.abs(z1-z2),2))

使代码简单,以便我们能够帮助您。这是什么公式?请在您的答案中添加一些解释。
Math.sqrt(Math.pow(Math.abs(x1-x2),2) + Math.pow(Math.abs(y1-y2),2)+ Math.pow(Math.abs(z1-z2),2))