代码之家  ›  专栏  ›  技术社区  ›  billysdomain

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

  •  0
  • billysdomain  · 技术社区  · 7 年前

    我有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}坐标都是其他点相对于自身的坐标

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ripi2 user10587824    7 年前

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

    看这张照片:

    enter image description here

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

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

    对于 P4 我们可以使用三个圆周,以P1、P2和P3为中心。我们再次得到两种解决方案。

    对其余的点也可以进行同样的处理。对于 Pn 你有 n-1 周长。
    我相信你能找到圆交点的数学公式。

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

    真正的解决方案是通过旋转得到的 P1 .要计算旋转角度,需要 {x,y} 另一点的坐标。