如何在整数平面上近似欧几里德距离,没有溢出?

Nor*_*sey 6 euclidean-distance integer-arithmetic

我正在开发一个只有整数运算的平台.应用程序使用地理信息,我用(x,y)坐标表示点,其中xy是以米为单位测量的距离.作为近似,我想计算两点之间的欧几里德距离.但要做到这一点,我必须平方距离,并使用32位整数,我可以代表的最大距离是32公里.不好.我的需求更多的是1000公里.但我希望能够在小于30米的范围内解决距离问题.

因此我的问题是:我如何计算欧几里德距离,只使用整数运算,没有溢出,对于正方形不适合单个单词的距离?

ETA:我希望能够计算距离,但我可能会满足于能够比较它们.

why*_*ird 2

也许比较八边形距离近似就足够了?

这篇关于快速近似距离函数的文章稍微更新了一些。