我想计算一个环面上两个x/y坐标之间的距离。这是一个普通网格,具有其角落和边缘“连接”的属性。例如,在500x500的网格上,点(499, 499)相邻于(0, 0),则(0,0)到(0,495)的距离应为5。
是否有好的数学方法来计算这个距离?
所以你想要计算一个二维环面的欧几里得距离,我理解的没错吧。
sqrt(min(|x1 - x2|, w - |x1 - x2|)^2 + min(|y1 - y2|, h - |y1 - y2|)^2)
其中w
和h
分别表示网格的宽度(x)和高度(y)。
min(|x1-x2|,w-|x1-x2|)+ min(|y1-y2|,h-|y1-y2|)
。 - George对于点(x1,y1)和(x2,y2),您需要计算4个距离:
然后取这些距离的最小值。