gpt4 book ai didi

javascript - 画线javascript的循环逻辑

转载 作者:行者123 更新时间:2023-11-29 17:57:31 26 4
gpt4 key购买 nike

我有以下两个数组:

var element_1 = new Array([x1,y1],[x2,y2],[x3,y3],[x4,y4]);
var element_2 = new Array([x1,y1],[x2,y2],[x3,y3],[x4,y4]);

逻辑:我想运行一个循环(嵌套),其中将 element_1 的每个元素(例如 [x1,y1])与 element_2 的每个元素进行比较> 和它们之间的最短距离应该在循环内计算(我知道如何计算最短路径)。这里棘手的部分是我需要引用哪对最短过去,然后获取那些 [x1,y1][x2,y2] 组合来绘制线。

示例数据:

var element_1 = new Array([10,0],[20,10],[10,20],[0,10]);
var element_2 = new Array([10,30],[20,40],[10,50],[0,40]);

应在 [10,20] 和 [10,30] 之间划线。另外,我会以某种方式需要将坐标存储在某处以将其传递给画线函数

我该怎么做?任何线索将不胜感激。

最佳答案

下面是我的做法:

var element_1 = [[0,0],[1,2],[5,3],[6,8]];
var element_2 = [[0,1],[1,4],[5,9],[9,8]];

var closest = {a: false, b: false, distance: false};

for(var i=0; i<element_1.length; i++) {
for(var j=0; j<element_2.length; j++) {
var distance = calculate_distance(element_1[i], element_2[j]);
console.log('Distance between element_1['+i+'] and element_2['+j+']: ' + distance);
if(closest.distance === false || distance < closest.distance) {
closest = {a: element_1[i], b: element_2[j], distance: distance};
}
}
}

console.log('The shortest path is between '+closest.a+' and '+closest.b+', which is '+closest.distance);

function calculate_distance(a, b) {
var width = Math.abs( a[0] - b[0] ),
height = Math.abs( a[1] - b[1] ),
hypothenuse = Math.sqrt( width*width + height*height );
return hypothenuse;
}

作为Roko C. Buljan说,在您的情况下,您可以将 new Array() 替换为 []Here's why .

关于javascript - 画线javascript的循环逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com