Geometry 基于距离从三角形点构建地理地图

Geometry 基于距离从三角形点构建地理地图,geometry,triangulation,trilateration,Geometry,Triangulation,Trilateration,我有5个{x,y}点随机放置在网格上 每个点都不知道其他点的{x,y}坐标 每个点都知道其他每个点距离其{x,y}位置的距离 每个点与其他每个点交换此距离信息 所以每个点都知道其他点的距离 使用此距离信息,每个点都可以(通过查找角度)将自身用作参考点,为每个其他点计算三角形 例如,点1可以计算以下三角形: 1-2-3, 1-2-4, 1-2-5, 1-3-4, 1-3-5, 1-4-5, 使用从其他点接收到的距离数据,它也可以计算 2-3-4, 2-3-5, 2-4-5, 3-4-5 我想建立一

我有5个{x,y}点随机放置在网格上

每个点都不知道其他点的{x,y}坐标

每个点都知道其他每个点距离其{x,y}位置的距离

每个点与其他每个点交换此距离信息

所以每个点都知道其他点的距离

使用此距离信息,每个点都可以(通过查找角度)将自身用作参考点,为每个其他点计算三角形

例如,点1可以计算以下三角形: 1-2-3, 1-2-4, 1-2-5, 1-3-4, 1-3-5, 1-4-5, 使用从其他点接收到的距离数据,它也可以计算 2-3-4, 2-3-5, 2-4-5, 3-4-5

我想建立一个地图的位置,每个其他点相对于一个单一的点

我该怎么做呢?我想这可能是某种三角测量算法,但这些算法似乎主要是从其他三个点计算一个点的位置,而不是从其他点{x,y}坐标仅基于距离信息发现的位置

我曾尝试为每3个三角形点绘制两个可能的三角形,然后在一个固定的已知点上旋转它们以尝试对齐它们,但我认为这条途径最终会有太多的可能性和错误


最后,我希望每个点的{x,y}坐标都是其他点相对于自身的坐标

你知道从一个点到另一个点的距离,
dij
。因此,点2位于中心点1的圆周上,半径=d12。点3位于中心点1和R=d13的圆周上,它也位于中心点2和R=d23的另一个圆周上。 见下图:

为了简单起见,我在X轴上设置了点2

如您所见,点3位于以P1和P2为中心的两个圆环交点上。还有第二个十字路口,
P3a
。让我们选择一个向上的并继续

对于
P4
我们可以使用三个圆周,以P1、P2和P3为中心。我们再次得到两个解决方案。 对于其余的点,也可以执行相同的过程。对于
Pn
您有
n-1
周长。
我相信你能找到圆交点的数学公式

必须注意以下几点:
1) 如果首先按距离将点排序到
P1
,构造会更简单。
2) 并非所有距离都能生成解决方案。例如,增加
d13
a
P3的两个圆周之间没有交点。或者增加
d14
,现在这三个圆周不会在两个预期点
4
4a
相交。
3) 通过考虑交叉口的平均值以及从每个解到该平均值的距离,这一事实可能会被过度使用。您可以在这些距离中设置一个公差,并判断平均值是一个解决方案还是某些
dij
错误。由于两种解决方案都是可行的,你必须考虑两个平均值。
4) 这两个可能的三角剖分是对称的,在我所画的例子中,在X轴上


真正的解决方案是通过围绕
P1
旋转获得的。要计算旋转角度,您需要另一点的坐标。

太好了,非常感谢。如果一个或多个点在P1保持不变的情况下移动,我能确定这两种可能性中的哪一种是正确的吗?@billysdomain对称性始终存在,直到使用另外两个点的坐标为止。这意味着,除非你有一个三角形,它的坐标是预先知道的,你用这个三角形来解决对称性和旋转。所以解决对称性的唯一可能的方法是引入一个已知的点,任何一个点在任何序列中所做的任何运动都不会有帮助?任何运动都只是新的距离,这样就形成了一种新的三角测量。你又站在起跑线上了。没有已知的点,对称性仍然存在。