Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于R中的曼哈顿距离计算Voronoi细分_R_Geometry_Distance_Computational Geometry_Voronoi - Fatal编程技术网

如何基于R中的曼哈顿距离计算Voronoi细分

如何基于R中的曼哈顿距离计算Voronoi细分,r,geometry,distance,computational-geometry,voronoi,R,Geometry,Distance,Computational Geometry,Voronoi,我试图用R中的Manhattan距离计算二维的Voronoi细分 理想情况下这将是一个函数,它获取一组二维点并输出分割空间的多边形列表。我不确定Voronoi细分的什么表示是标准的 当然,使用欧几里德度量有很多方法可以做到这一点(像deldir和qhull这样的包使这一点非常容易),但我还没有找到一种方法可以在曼哈顿距离上做到这一点。使用sos的findFn('voronoi')进行搜索也没有结果 信息: 交互式: 我一直在滚动,可以在这里总结基本情况: 相邻质心之间是一条垂线,在曼哈顿公制中,

我试图用
R
中的Manhattan距离计算二维的Voronoi细分

理想情况下这将是一个函数,它获取一组二维点并输出分割空间的多边形列表。我不确定Voronoi细分的什么表示是标准的

当然,使用欧几里德度量有很多方法可以做到这一点(像
deldir
qhull
这样的包使这一点非常容易),但我还没有找到一种方法可以在曼哈顿距离上做到这一点。使用
sos
findFn('voronoi')
进行搜索也没有结果

信息:

交互式:

我一直在滚动,可以在这里总结基本情况: 相邻质心之间是一条垂线,在曼哈顿公制中,如果质心是随机生成的,则最有可能是两条射线和45度对角线,但也可能出现一条直线水平、垂直或45度对角线。对于每个质心对,给定一组这样的线,分隔区域的边就在它们之间。收集每对直线的相交点,这些相交点与最近的3个质心之间的距离相等(在一个ε内),以曼哈顿度量为单位。同时收集45度对角线的两个中点,它们与最近的两个质心的距离相同。外面的警察局不会关闭。如何处理这些问题取决于你需要什么。多边形边界和边界顶点将需要排序,这样您的多边形就不会出现锯齿形混乱。可以确定缠绕顺序是顺时针还是其他方向。更多的事情可以做,这取决于你需要什么

不幸的是,涉及的点越多,速度就越慢。每个平分线与其他平分线的相交是瓶颈。我一直在尝试一种插入方法,取得了一些成功,但是。现在我想先在质心之间创建一个最近邻链接。如果邻域已知,则相交的平分线将是最小的,并且可以快速计算出许多质心

无论如何,蛮力方法确实有效:

光标附近的点实际上是一条小对角线的两点。这是一种精确的方法,但比最初看起来更复杂。上面的交互式链接中的java代码可能更快,但很难从中获得坚实而精确的几何图形


对不起,我不知道R。

也许问题是关于求(三角形的)外接圆内正方形的最大面积。这样一个正方形abs(x)+abs(y)=r的方程(www.mathematische-basteleien.de/taxicabgeometry.htm)。当你有一个三角形网格时,voronoi图是对偶的。

说得清楚-
findFn('voronoi')
产生了大量的结果,只是没有一个结果与曼哈顿距离相符。Java代码很糟糕:/。几十个虚假的实例变量,像Math.abs和Math.pow这样的函数的奇怪的重新实现,大量的代码,到处都是死的和/或无用的代码和变量。。。如果它对任何人都有用的话,我在编辑时有一个稍微整洁的代码版本:哦,曼哈顿距离的方法被标记为“欧几里德距离”。jfc。