gpt4 book ai didi

c# - 计算节点的可能坐标

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:26 25 4
gpt4 key购买 nike

这可能是一个奇怪的应用程序。问题的简要描述是“如何根据相对位置(距离)获取节点的绝对坐标?”

我们有许多节点(每个节点都有一个唯一的 ID)和一个列表,该列表指定其相邻节点和到每个节点的距离作为输入。

所需的输出是在 2D 表面上布置这些节点的一种可能方式。

生成的算法将在 C# 中使用...因此外部 .net 库也可能有所帮助。

如果你能告诉我一个方法来做到这一点,那将是一个很大的帮助。提前谢谢你。

最佳答案

开始时您必须有至少三个已知点的坐标。

方法 I。如果已知点相邻,过程很简单 - 您循环所有点,寻找在其列表中具有三个已知点的点。使用其中两个来计算两个可能的位置,然后使用第三个来选择右或左变体。重复循环,直到在循环中没有新的点。

这个简单的算法收敛性不好 - 误差在累积,远点的坐标可能不好。但是因为你有坐标整数,你可以在每次计数后修复坐标并使它们保持良好状态。

方式二。如果已知点彼此不相邻,则过程更复杂。

  • 比方说,您已经开始已知点 A、B、C。
  • 取 A 和它的一些相邻点 D。把它放在离 A 正确距离的地方。
  • 找到与 A 和 D 相邻的点 E。选择两个可能位置中的任意一个。
  • 从A、D、E开始,用I的方式。
  • 当你通过距离到达第二个起始已知点时,假设它是B,当然,它会在不好的地方。转动您围绕 A 构建的所有网络,以便 B 获得正确的坐标。继续循环。
  • 当你到达最后一个开始已知点 C 时,它会被设置为正确与否。如果不是,相对于 AB 轴镜像整个网络 - C 将被正确设置。 (如果不是,则您的数据有误)。继续我循环的方式直到结束。

如果所有点的列表很长,这两种方法都适用。如果点只给出很少的距离,任务就会变得非常非常复杂。

关于c# - 计算节点的可能坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com