从两点公式求角度

Find angle from two points formula

我对计算两点之间角度的公式有疑问p1(x1,y1), p2(x2,y2)

我使用这个公式:

angle = arctan(y2-y1/x2-x1)

你能解释一下,为什么必须减去 y2,y1x2,x1 吗?

谢谢

tan、sin 和 cos 实际上测量的是 3 边对象(即三角形)的两条边之间的比率。

因此,在您的情况下,要形成该三角形,您将需要两条边的长度。它们是y1和y2之间的长度,以及x1和x2之间的长度。

这就是为什么要从 y2 中减去 y1,从 x2 中减去 x1。

其实你也要确保符号是正确的,否则你的答案会得到不同的角度。

根据维基百科关于反三角函数(包括反正切函数)的文章,它们“用于从任何角度的三角比获得角度”,即 y 分量与 x 分量的比较你正在看的矢量。您的向量从 (x1, y1) 开始,因此从第二个点减去这些分量有效地将向量集中在 (0, 0),然后将 y 分量除以 x 分量将得到三角比(在这种情况下也称为梯度) 可以通过 arctan 函数得到角度。

在实施说明中,您需要使用 arctan2 函数来防止在垂直线的情况下出现被零除错误。垂直线具有计算机无法处理的无限梯度。 arctan2 函数将分别接受 x 和 y 分量,回避问题。例如,请参阅 Java or Python 的文档。