Java 使用二维三边测量查找对象的位置
我试图在一个程序中使用三边测量来模拟现实生活中的情况。 我有3个发射器,它们发出的信号在信号移动的每一个方块后都会变弱。我使用一个2D数组和代码生成一个粗略的数字圈。 这显示了其中一个发射器Java 使用二维三边测量查找对象的位置,java,algorithm,geometry,triangulation,trilateration,Java,Algorithm,Geometry,Triangulation,Trilateration,我试图在一个程序中使用三边测量来模拟现实生活中的情况。 我有3个发射器,它们发出的信号在信号移动的每一个方块后都会变弱。我使用一个2D数组和代码生成一个粗略的数字圈。 这显示了其中一个发射器 00000000000000000000 00000000000000000000 00000000000000000000 00000000001000000000 00000000112110000000 00000001223221000000 00000001234321000000 0000001
00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
00000000112110000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001223221000000
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
我的问题是,如何在网格中找到接收器的位置?
如何找到三个圆的相交点?
我试着把两个圆的方程设置成相等,然后求解,但这并没有给我任何东西,而是给了我虚数
如果有帮助的话,我还可以编辑代码使圆圈不填充。
每个圆的半径都可以更改
接收机预先知道每个发射机的信号强度,并且强度也可以更改(在100、200或300范围内或任何其他范围内)您基本上有两个问题
00000000000000000000
00000000000000000000
00000000000000000000
00000000001000000000
0000A00011211A000000
00000001223221000000
00000001234321000000
00000012344432100000
00000001234321000000
00000001A23221000A00
00000000112110000000
00000000001000000000
00000000000000000000
00000000000000000000
0000A00000000A000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000A00000000A00
有了这个,你可以用8个探针探测你当前的网格。当涉及到到网格边缘的距离时,可以通过一些额外的检查进一步减少该距离。但是在你的例子中,你会注意到你的第三个探测点落在一个半径之内。从那里开始,你可以中断探测,寻找找到的发射器的中心
现在您至少找到了一个发射器的中心,您可以对其他发射器的位置进行有根据的猜测,因为您知道每个发射器的范围,并且您知道到下一个发射器的距离将小于最大+最小范围的范围。同样,您可以在网格内以适当的间隔进行探测,以快速找到第二个发射机。再次计算第二个发射器的准确中心
第三个发射机易于计算。计算位于两个找到的发射器之间的直线中心的点(在坐标系或网格中很容易做到)。缺失点应位于您在两个找到的发射器之间绘制的假想线的任一侧,距离该线的中心点的最大距离为您尚未找到的发射器范围
第2点:
答案就在这里
另一种选择是我还有一些其他问题。是否存在变送器的最小/最大半径。每个发射机的半径相同还是不同?你可以尝试使用RANSAC:每个接收机有三个数字(信号强度)吗?给定两个信号强度,你知道两个发射机的实际距离,还是只知道它们之间的距离比?@3xil3它们可以是你想要的任何东西want@jwpat7每个发射机都发出一个信号,因此接收机可以接收其中的3个。但是,考虑到信号强度,我不确定如何获得距离