algorithm - 不相交椭圆的最近邻居三重奏

标签 algorithm matlab computational-geometry ellipse nearest-neighbor

我正在研究一个问题,即为一组任意放置的不相交椭圆找到最近的三个邻居。作为新用户,我不允许包含图像标签,但我在页面底部包含了 URL,因为我一直认为我能够更好地用视觉辅助工具来解释自己。该图展示了我所说的 Apollo 尼乌斯圆将 3 个最近的椭圆相互连接起来的意思。

到目前为止,我已经尝试使用椭圆之间的最小距离并通过增量和扫描线方法修改 Delaunay 三角剖分,使用各种技术涉及在每 3 个椭圆配置之间形成的三角形圆圈等,并尝试估计具有边界的邻居盒子,并且完全没有关于如何真正有效地工作的想法

虽然我已经找到了一个解决方案,但它涉及详尽地搜索每个三个椭圆并将其与其他每个椭圆进行比较,并且时间复杂度为 n(n-1)(n-2)/3!。最重要的是,每个计算都是迭代完成的,而不是代数计算的。

有没有人知道如何用代数的方式来解决这个问题,而且时间复杂度低于 n^2

即使是一种技术建议也适合我尝试,因为现在我已经研究了将近 3 周,但确实离一个不错的答案还差得很远。

Image

最佳答案

如果您为椭圆计算 Voronoi 图,那么您的圆心点将位于图的交点处。

http://ima.umn.edu/nuggets/voronoi.html

关于algorithm - 不相交椭圆的最近邻居三重奏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468390/

相关文章:

algorithm - 我想要一个算法来裁剪图像,从哪里开始

c++ - 如何找到 BFS 找到的实际路径?

algorithm - 断开连接的有向图使其强连接的最小边数

java - 从 matlab 调用 java 值得吗?

arrays - 在数组中找到具有最小差异的一对的有效方法

algorithm - 两个数字形状的重叠测试

python - 强化算法似乎可以学习,但脚本卡住并且代理没有重置

MATLAB——如何从 nxn 矩阵绘制热图?

Matlab交换

c++ - 使用 boost :geometry 翻转多边形