【发布时间】:2012-02-13 13:42:37
【问题描述】:
我有一个点数组,其中(点)我知道坐标(在我的坐标平面中,x/y)。然后我有一个未知坐标点,但我知道从“已知”点到该点的距离。我正在寻找“未知”点坐标。应该是一种三角测量。
我考虑过用方程组来描述这种情况。
假设这个数据:
coord[n] basePoints;
double[n] dist;
coord result;
让 coord 像一个:
struct {
double x,y;
};
现在,圆周方程是:
x^2 + y^2 + ax + bx + c = 0
where:
a = basePoint[i].x
b = basePoint[i].y
c = a^2 + b^2 + r^2
r = dist[i]
在这种情况下,我们需要 3 个点来准确确定结果点的位置,因此我们需要一个由三个方程组成的系统。问题是:是否有一些快速的方法来找出结果坐标,没有,有算法可以遵循吗?
编辑:
我在这里找到了我正在寻找的算法Trilateration using 3 latitude and longitude points, and 3 distances。
也非常感谢@hardmath 提供方法名称和维基百科文章。
【问题讨论】:
-
您是否可以将
dist更改为表示距离平方的整数数组,或者它是否必须发生在一堆作为某事物平方根的双精度数中,因此可能不精确? -
我有一个点数组,其中(点)我知道坐标(在我的坐标平面中,x/y)。然后我有一个未知坐标点,但我知道从“已知”点到该点的距离。我正在寻找“未知”点坐标。它应该是一种三角测量。
-
这个问题的名称是“三边测量”。你可能想在谷歌上搜索那个词。碰巧Wikipedia is "out" today 但这个链接应该让你在美国东部标准时间午夜开始时开始。这在精确算术中不是一个难题,但现实世界的版本当然会考虑距离的测量误差,这使得它更具挑战性。
-
@hardmath 谢谢你的名字 :) 现在我知道我应该在哪个方向继续我的研究
标签: algorithm math intersection