【发布时间】:2016-06-09 20:26:22
【问题描述】:
我有以下两个数组:
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] 之间划线。另外,我会以某种方式需要将坐标存储在某处以将其传递给画线函数
我该怎么做?任何线索将不胜感激。
【问题讨论】:
-
您能否提供一组实际坐标,以及您期望的结果?
-
@blex 坐标在单击元素时动态存储在数组中。 4 [x,y] 对是矩形锚点的坐标(高度和宽度的中点)。因此 2 个数组有锚点或 2 个元素。因此,目标是找到最短的连接锚点及其 x,y 值以在它们之间画一条线
-
@Redu 这是一个打字错误。纠正它。谢谢!
-
矩形?为什么不直接存储
el=[x,y,w,h]... -
@RokoC.Buljan 那是因为我需要传入的行仅加入矩形上的某个点。想象一下 UML 图
标签: javascript arrays loops