为了账号安全,请及时绑定邮箱和手机立即绑定

如何从三点计算角度?

如何从三点计算角度?

大话西游666 2019-08-01 17:35:49
如何从三点计算角度?让我们说你有这个:P1 = (x=2, y=50)P2 = (x=9, y=40)P3 = (x=5, y=20)假设这P1是圆的中心点。它总是一样的。我想要由P2和组成的角度P3,或者换句话说,接下来的角度P1。内角是精确的。它总是一个锐角,所以小于-90度。我想:伙计,这是简单的几何数学。但我现在已经找了大约6个小时的公式,而且只找到人们谈论复杂的美国宇航局的东西,如arccos和矢量标量产品。我的头感觉像在冰箱里。一些数学大师认为这是一个简单的问题吗?我不认为编程语言在这里很重要,但对于那些认为它的人来说:java和objective-c。我需要它,但没有标记它们。
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

如果你的意思是P1是顶点的角度那么使用余弦定律应该有效:

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

其中P 12是从P1到P2的段的长度,由...计算

sqrt((P1 x - P2 x2 +(P1 y - P2 y2


查看完整回答
反对 回复 2019-08-01
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

如果你认为它是两个向量,一个从点P1到P2,一个从P1到P3,它变得非常简单

所以:
a =(p1.x - p2.x,p1.y - p2.y)
b =(p1.x - p3.x,p1.y - p3.y)

然后,您可以反转点积公式:
获取角度:

请记住,这只是意味着:a1 * b1 + a2 * b2(这里只有2个尺寸......)


查看完整回答
反对 回复 2019-08-01
?
ITMISS

TA贡献1871条经验 获得超8个赞

处理角度计算的最佳方法是使用atan2(y, x)给定点x, y返回该点的角度和X+相对于原点的轴。

鉴于计算是

double result = atan2(P3.y - P1.y, P3.x - P1.x) -
                atan2(P2.y - P1.y, P2.x - P1.x);

即你基本上由两个点翻译-P1(换句话说,让你翻译的一切P1,然后你考虑的绝对角度的差异在原点结束)P3P2

优点atan2是表示整圆(你可以在-π和π之间得到任何数字),而acos你需要根据符号处理几种情况来计算正确的结果。

唯一的奇点atan2(0, 0)......它意味着P2P3必须来自不同的P1是在这种情况下没有意义谈论的角度。


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 1517 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信