algorithm - 如何判断N个圆是否相交以及相交在哪一点?

标签 algorithm math geometry artificial-intelligence robotics

这是我面临的问题:我有一个充满障碍的计划。我有一个愚蠢的迷路机器人。机器人不知道他在哪里!但他知道他可以看到障碍物的某些顶点……并且使用它的传感器,他可以分辨出他与每个可见顶点之间的距离。每个顶点都是障碍的一部分。机器人不知道自己的位置,所以他假设自己的位置是 (0, 0)。机器人什么知道他在 map 上的位置。我正在尝试通过多点定位来解决这个问题。

问题是:如何找到 N 个圆之间的交点并准确地告诉它发生的点?

如果我没有说清楚,尽管问,我可以提供更多信息。

编辑:(考虑到相关的问题,我会尽量说得更清楚)

  • 我确实想知道是否所有的圆都有一个(且只有一个)交点,我想知道它是哪一点。
  • 考虑到机器人是 (0, 0),考虑到他不知道自己在哪里,所以将顶点位置提供给机器人!所以,他只能告诉每个顶点的距离和角度(实际上,他收到坐标)。
  • N大于3

最佳答案

因此,重申一下,您的机器人拥有所有顶点的“ map ”,因为它们与全局位置 VG = {V1g, ..., VNg} 有关。它具有所有顶点 VL = {V1l, ..., VNl} 的局部 View ,由到其位置的角度和距离给出 - 然而它不知道哪个顶点是全局的。它想知道它的全局地位。还给出了全局顶点的“唯一”分布。

如果是:

从 VG -> VL 知道至少一个顶点映射可以使问题变得微不足道。因此,机器人需要首先这样做(再次假设独特的布局)。不确定任何点形状/模式匹配算法,但我猜有一些。您可能会使用一些技巧,比如如果凸包是唯一的,这会使问题变得相当微不足道。也可以从图论的角度来解决这个问题,比如构建原始全局 map 的最小生成树,然后将每个顶点与本地集进行匹配。

关于algorithm - 如何判断N个圆是否相交以及相交在哪一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29544899/

相关文章:

java - 图轴问题

algorithm - 在集合中查找最小值/最大值时,使用一种类型的最小值/最大值

math - 我应该在数学游戏中使用表达式解析器吗?

java - 生成一个偏离两极的随机纬度

math - 如何找到连接两个线段的弧?

python - 带颜色条的圆图

java - 判断坐标是否在线

c - 判断直线是平行的、重合的还是相交的。如果它们相交,找到交点

algorithm - Haskell中的Bentley-Ottmann算法?

python - 用 python 计算图像径向平均值的最佳方法是什么?