现在我们已经看到,曼哈顿圆就是一个斜45°的正方形。
想起一个问题,如果要求一个椭圆上任意两点的最大曼哈顿距离怎么求?
先考虑简单的问题
椭圆上两点间距离的最大值是多少?显然,就是长轴长2a
为什么?呃,一下子还不知道怎么解释呢。
可以这样理解,首先,我们知道
一个圆上的点到圆心的距离都是半径r
一个圆上任意两点的最大距离就是直径2r
于是
只要我们能找到一个圆将椭圆覆盖,则椭圆上就一定能找到最大距离的两点。
如图
以椭圆中心为圆点,长轴为半径的圆恰好覆盖了整个椭圆,因此,圆的直径,也就是椭圆长轴就是最大距离。
当然可以将这个结论往曼哈顿距离推广。显然
一个曼哈顿圆上的点到曼哈顿圆心的距离都相等
一个曼哈顿圆上两点间曼哈顿距离的最大值就是对角线长
如图
d(A,B)=d(A,C)+d(C,D)+d(D,B)=2r
所以,我们只要能找到椭圆的曼哈顿覆盖圆,就能求出椭圆上两点的最大曼哈顿距离。
拓广:对于任何一个几何区域,如果能够用曼哈顿圆覆盖,就可以求出区域内两点间曼哈顿距离的最大值;反之,如果找不到一个曼哈顿圆可以覆盖,则不存在最大曼哈顿距离。
事实上,求曼哈顿圆覆盖要比圆覆盖容易得多。因为曼哈顿圆的边实际上
就是斜率为±1的直线。