如何利用相互关联的距离绘制点?

5 投票
1 回答
1938 浏览
提问于 2025-05-10 15:14

我有一个点的字典:

dictDistances = {A:{B:1.23, C:3.56}, B:{A:1.23, C:2.38}, C:{A:3.56, B:2.38}}

我想用这些字典里的值来绘制这些点,而不是使用绝对值。我可以画出来,但我不太明白怎么在Python里做到这一点。

***实际上点的数量远不止3个,有300个,我只是添加了这个字典来展示我拥有的信息类型。

****我的每组三个点可能满足,也可能不满足三角不等式定理。

更新

给定点A、B、C、D、E、F以及它们之间某些距离范围x:y,绘制出来的效果大概是这样的:

在这里输入图片描述

在提供的图片中,你可以看到所有距离的集合,也就是:

AB AC AD AF AE
BA BC BD BF BE
CB CA CD CF CE
DB DC DA DF DE
EB EC ED EF EA
FB FC FD FA FE

更新2

光线:

光线A:

在这里输入图片描述

光线B:

在这里输入图片描述

光线C:

在这里输入图片描述

光线E、D、F也是如此。然后我需要以某种方式验证或修改它们。这就是我不明白怎么在Python里做的地方。不过画出来是完全可能的。

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

1

我觉得你需要做的事情是:

  • 生成一个字典,把每个点和它到其他点的距离配对起来。比如说:

Dict_comp[A] = set((B, 1.3), (C, 9.5), (D, 20.3)) 等等……

  • 把点 A 强制放在原点,也就是 (0,0)。
  • 选择一个方向来放置你想要绘制的第一个点。比如,我会把点 B 放在 (1.3, 0) 的位置。
  • 一旦你把这两个点放好,就可以根据它们之间的关系来确定其他点的坐标。
    • 有了字典,知道每个点与其他点的距离后,你可以查找 Dict_comp[C],然后查看已有点之间的距离来获取这些信息。

这个来自 matplotlib 的例子会帮助你理解极坐标 - 你会从两个已有点那里得到 r,然后就可以算出 theta。根据这些信息,我建议你不要用超过两个已有点来定位第三个点。

撰写回答