Mooven_Python 发表于 2023-2-20 12:48:03

已知各点距离 如何利用python求得各点坐标

如有向图所示,字母A到J可看作为十个点,线上面的数字表示点间距。
假设A坐标(0,0),如何利用python求得其余各点坐标,并利用matplot绘制呢?

wp231957 发表于 2023-2-20 14:06:19

能求吗,估计会有无数个答案吧

Mooven_Python 发表于 2023-2-20 17:45:26

wp231957 发表于 2023-2-20 14:06
能求吗,估计会有无数个答案吧

感谢回复,拓宽了我的思路。如果有办法求得一个解也可以。

ouyunfu 发表于 2023-2-20 20:54:47

如果已知各点之间的距离,可以使用数学知识来解决这个问题。首先,我们需要选择一个点作为原点,然后计算其他点相对于原点的坐标。

假设我们有n个点,我们可以将它们的坐标表示为一个n维向量。假设第一个点为原点,则其坐标为(0, 0, ..., 0)。对于其他点,我们可以使用勾股定理来计算它们相对于原点的距离,然后使用三角函数来计算它们相对于原点的角度。这样,我们就可以将每个点表示为一个极坐标向量,其长度为到原点的距离,角度为相对于x轴的极角。最后,我们可以将极坐标向量转换为笛卡尔坐标向量,即平面直角坐标系中的坐标。

以下是使用Python实现这个过程的示例代码:

import math

# 已知点之间的距离
distances = [
    ,
    ,
   
]

n = len(distances)

# 初始化点的坐标向量
coords = [ for _ in range(n)]

# 计算每个点相对于原点的极坐标向量
for i in range(1, n):
    d = distances
    theta = math.acos((distances**2 + distances**2 - distances**2) / (2 * distances * distances))
    x = d * math.cos(theta)
    y = d * math.sin(theta)
    coords =

# 输出坐标向量
print(coords)
在这个示例中,我们使用一个二维列表distances来表示各点之间的距离。我们将第一个点设为原点,将所有其他点表示为相对于原点的极坐标向量,并将它们存储在coords列表中。最后,我们输出coords列表,它包含了所有点的坐标。

这个示例中使用了三角函数,math.acos用于计算余弦函数的反函数,math.cos和math.sin用于计算三角函数的值。这些函数都是Python标准库中提供的数学函数。
页: [1]
查看完整版本: 已知各点距离 如何利用python求得各点坐标