计算两个x/y坐标之间的距离?

Rop*_*tah 21 math grid distance coordinates

我想计算圆环表面上两个x/y坐标之间的距离.因此,这是一个普通网格,其边角和边是"连接"的.例如,在500x500的网格上,(499,499)处的点与(0,0)相邻,并且例如(0,0)和(0,495)之间的距离应为5.

有没有什么好的数学计算方法呢?

ezo*_*zod 53

所以你在寻找圆环的二维表面上的欧几里德距离.

sqrt(min(|x1 - x2|, w - |x1 - x2|)^2 + min(|y1 - y2|, h - |y1 - y2|)^2)
Run Code Online (Sandbox Code Playgroud)

其中wh分别是网格的宽度(x)和高度(y).

  • @ropstah:我不确定你的意思.如果你指的是"圆环"的形状,不要挂在欧几里得3空间的圆环看起来像; 我们只是谈论一个边缘连接的欧几里德平面,吃豆人的风格,所有距离都如你所料. (2认同)

Ban*_*i-T 7

  • 如果/当x坐标之间的距离大于网格X大小的一半时,将网格X大小添加到较小的x坐标.
  • 为Y做同样的事.
  • 然后计算距离.