角线在两条线的角落

ypn*_*nos 2 c geometry

我搜索最快或最简单的方法来计算凸多边形任意点的外角.这意味着,总是更大的角度,而所讨论的两个角度加起来为360度.

这是一个例子:

插图http://fopref.meinungsverstaerker.de/div_priv/crap.png

现在我知道我可以计算两个向量AB和CB之间的角度,它涉及点积,归一化和余弦.然后我仍然需要确定两个结果角度中的哪一个(第二个是180度减去第一个)我想要两次加到另一个角度.

但是,我认为可能有一个更简单,更简单的解决方案,可能使用强大的atan2()函数.我卡住了,问你这个:-)

更新: 我被问到我需要的角度.我需要计算B周围这个特定圆的面积,但只计算A,B,C,......所描述的多边形的面积.所以要计算面积,我需要角度来使用公式0.5*angle*r*r.

dmc*_*kee 5

使用描述线条的向量的内积(点积)得到内角并从360度减去?


如果你已经有点矢量形式的线条,那么效果最好,但是你可以很容易地从点到点形式获得矢量(即通过减法).

考虑.到是点积,我们有

 v . w = |v| * |w| * cos(theta)
Run Code Online (Sandbox Code Playgroud)

其中vw是向量,theta是线之间的角度.并且可以从矢量的分量计算点积

 v . w = SUM(v_i * w_i : i=0..3) // 3 for three dimensions. Use more or fewer as needed
Run Code Online (Sandbox Code Playgroud)

这里的下标表示组件.


实际上已经读过这个问题:

  • 反转点积返回的角度始终小于180度,因此始终是内角.