一尘不染

如何从三个点计算角度?

algorithm

可以说你有这个:

P1 = (x=2, y=50)
P2 = (x=9, y=40)
P3 = (x=5, y=20)

假设这P1是一个圆的中心。总是一样的。我想要由P2和构成P3的角度,换句话说就是与相邻的角度P1。内角要精确。它始终是锐角,因此小于-90度。

我以为:那是简单的几何数学。但是我现在已经寻找了大约6个小时的公式,却只发现有人在谈论复杂的NASA东西,例如arccos和矢量标量产品。我的头好像在冰箱里。

这里的一些数学大师认为这是一个简单的问题?我认为这里的编程语言并不重要,但是对于那些认为确实重要的人来说:java和Objective-c。我都需要它,但是还没有为它们添加标签。


阅读 1075

收藏
2020-07-28

共1个答案

一尘不染

如果您的意思是P1是顶点的角度,那么使用余弦定律应该可以:

arccos((P 12 2 + P 13 2 -P 23 2)/(2 * P 12 * P 13))

其中P 12是从P1到P2的线段的长度,计算公式为

sqrt((P1 x -P2 x)2 +(P1 y -P2 y)2)

2020-07-28