gpt4 book ai didi

java - 使用 2D 三边测量查找对象的位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:22 24 4
gpt4 key购买 nike

我正在尝试在程序中使用三边测量来模拟现实生活中的情况。我有 3 个发射器,它们发出的信号在信号移动的每个方格后变弱。我正在使用一个二维数组和代码来生成一个粗略的数字圈。这显示了其中一个发射器

00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
00000000112110000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001223221000000
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000

我的问题是,如何在网格中找到接收器的位置?如何找到所有三个圆相交的位置?我尝试将圆的方程设置为彼此相等并求解,但这并没有给我任何结果,它给了我虚数。

如果有帮助,我还可以编辑代码,使圆圈不被填充。每个圆的半径可以改变

接收器预先知道每个发射器的信号强度,并且强度也可以更改(在 100、200 或 300 范围或任何其他范围内)

最佳答案

你基本上有两个问题

  1. 找到发射器的位置
  2. 计算交集

第 1 点:

点 1 可以通过以暴力方式检查网格中的特定点来解决。然而,在尝试找到第一个时,有几个可能的优化。一旦找到一个,您就可以根据刚刚找到的发射器的半径和需要找到的发射器对其他发射器的位置进行有根据的猜测。

我建议以接近已知最大半径的间隔探测网格。假设所有发射器都完全在网格内,您可以如下图所示进行探测(假设您拥有的最大半径为 5)- A 标记探测点:

00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
0000A00011211A000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001A23221000A00
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
0000A00000000A000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000A00000000A00

有了这个,您可以使用 8 个探针顶部来探测您当前的网格。当涉及到网格边缘的距离时,可以通过一些额外的检查进一步减少这种情况。但在你的情况下,你会注意到你的第三个探测点落在一个半径内。从那里您可以中断探测并寻找找到的发射器的中心。

现在您至少找到了一个发射器的中心,您可以对其他发射器的位置进行有根据的猜测,因为您知道每个发射器的范围并且知道到下一个发射器的距离将是小于最大范围+最小范围。同样,您可以在网格内以适当的间隔进行探测,以快速找到第二个发射器。再次计算第二个发射器的确切中心。

第三个发射器很容易计算。计算位于找到的 2 个发射器之间的直线中心的点(在坐标系或网格中很容易做到)。缺失点应位于您在 2 个找到的发射器之间绘制的假想线的任一侧,距离该线的中心点的距离是您尚未找到的发射器范围的最大距离。

第 2 点:

答案可以在这个post中找到

另一种可能是 TULIP Algorithm

关于java - 使用 2D 三边测量查找对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com