圆周交点算法

我有一组点,其中(点)我知道坐标(在我的坐标平面,x / y)。 然后我有一个未知坐标点,但我知道从“已知”点到该点的距离。 我正在寻找“未知”点坐标。 应该是一种三角形。

我想过用方程组描述情况。

假设这个数据:

coord[n] basePoints;
double[n] dist;
coord result;

让我们一起思考一下:

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个点来精确确定结果点的位置,所以我们需要一个包含三个方程的系统。 问题是:是否有一些快速的方法来找出结果坐标,并且没有,是否有算法可以遵循?

编辑:

我发现我在这里寻找的算法使用3个纬度和经度点以及3个距离进行三角测量。

对于方法和维基百科文章的名字,还要感谢@hardmath。


重述问题:您有nbasePoint[n]为中心的圆,半径dist[n]已知有一个公共交点。 你想找到那一点。

以前两个圆圈并找到它们的交点(s)。 有1或2(或0,但那么问题没有解决方案)。 如果是1,那应该是答案。 如果2,用下一个圆圈消除歧义。 您可以继续确认该点位于所有其他圈子中。


首先,你说你有n个点的坐标,和另一个点的距离(所以n个距离)。

如果你的坐标只有2个点,并且你有两个坐标和第三个点(未知)之间的距离,说X(x,y)。

假设你的第一个点是A(x1,y1),你的第二个点是B(x2,y2)

现在你想找到未知的点X(x,y)

你可以像这样得到A和x之间的距离

d1 = sqrt((x1-x)^2 +(y1-y)^2)

这里你已经知道了x1,y1和d

B和X之间的距离相似

d2 = sqrt((x2-x)^2-(y2-y)^2)

所以通过这2个方程,你将得到2个线性方程,其中有2个这种类型的未知变量

mx+ny - d1 = 0

 and 

 px+ qy - d2 = 0 

你可以求解这两个方程来得到点X(x,y)的x和y坐标。

你没有提到你正在使用什么编程语言,但你可以使用你选择的任何编程语言来实现它。 你不需要n个点和n个距离来计算未知点,你可以用2点计算它。

链接地址: http://www.djcxy.com/p/14865.html

上一篇: Circumference intersection algorithm

下一篇: Localising a receiver using trilateration of base station signal strengths?