2013-02-22 74 views
0

我有四个点,使凹四:获取内部拐角角度

一个(3,11)

B(11,9)

C(18,10)

d(8,1)

enter image description here

现在我想要得到的内角( b)以度为单位的角落。 注意:内角大于180度。

+3

这将更适合math.stackexchange.com。 – assylias 2013-02-22 18:37:14

+0

在'Math'库中,你可以找到正弦,余弦,切线和它们的逆。开始吧,看看你是否可以发布一些代码,我们会进一步帮助你... :) – vikingsteve 2013-02-22 18:38:30

+0

好吧,我会试试.. – MoHaKa 2013-02-22 18:40:12

回答

2

最安全的方法是使用内积和叉积,内积可以用4个点的两个矢量来计算(A-> B,B-> c)和使用该内积式

<ab,bc> = |ab|*|bc|* cos (abc) 
cos(abc) = |ab|*|bc|/<ab,bc> 

这是不够的,唯一分配的天使,因为角度及与其相配套具有相同的COS,但有不同的罪,这里是交叉产品来解决问题

ab * bc = |ab|*|bc| * sin(abc) 

的左边部分可以计算使用终点坐标,以便计算出罪,一旦计算出sin和cos,就可以适当地指定天使。

+0

亲爱的衙门,你再次忽略了d点,我之前说过,我不能忽视它。 – MoHaKa 2013-02-22 19:11:28

+1

d点并没有贡献于构建abc角度,你可以通过影响你想要计算的角度来移除它。 – 2013-02-22 19:22:57

+0

:)好的,但是如果我删除d点,如何确定内角在哪里。 – MoHaKa 2013-02-22 19:29:22

0

d点在这里只是一个分心。考虑(abc)三角形:

  • 很容易从坐标确定ab,bc和ca的长度。
  • 然后,您可以使用sin,cos或tan来确定(ab,bc)内角
  • 您寻找的角度是360减去(ab,bc)内角。
+0

如果我忽略了(四)点我不能确定内角落是哪里,不是吗? – MoHaKa 2013-02-22 18:54:07

+0

点d是无关紧要的 - 它可能在其他地方,而不会影响您正在寻找的角度。 – assylias 2013-02-22 20:33:35