【问题标题】:Getting distance between two points inside a 2d array JavaScript获取二维数组JavaScript中两点之间的距离
【发布时间】:2016-02-09 16:23:41
【问题描述】:

我很想得到 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);
};

这是我跟踪距离的代码。 [i+1] 是错误的,或者至少我认为是。

function baseDist(){
    baseDist = [];
    var xDistanceCheck;
    var yDistanceCheck;
    var distance = 0;

        for(var i=0;i<=hillArray.length;i++){

                FIRST C-A
                console.log("_________________________________");
                xDistanceCheck = hillArray[i][0]) - (hillArray[i][0]);
                xDistanceCheck = xDistanceCheck * xDistanceCheck;
                yDistanceCheck = hillArray[i][1] - (hillArray[i][1]);
                yDistanceCheck = yDistanceCheck * yDistanceCheck;
                distance = Math.floor(Math.sqrt(xDistanceCheck + yDistanceCheck));
                baseDist.push([distance])
                console.log(" Point " + hillArray[i][0]) " to point " + (hillArray[i+1][0]) + baseDist[0]);

                console.log("Last C-A  = " + baseDist[i]);


        }
};

【问题讨论】:

  • 简化代码以便我们可以帮助您。

标签: javascript arrays loops distance


【解决方案1】:

以下是计算两点之间距离的公式

公式是

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

【讨论】:

  • 那是什么公式?
  • 请在您的回答中添加一些解释。
【解决方案2】:

找到答案了,我用了模块...

var l = array.length;

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

How to get the previous and next elements of an array loop in JavaScript?找到答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2011-07-28
    • 2020-03-11
    • 2014-01-21
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多