luc*_*ls1 5 algorithm geometry polygon
如何找到多边形的内角数,大于180º,只有多边形的顶点?
对于每个顶点,我总是想要内部角度,而不是外部角度.
感谢巴西.
您可以简单地通过标量积(点积)来确定两个向量的角度。一个有用的属性是,如果向量正交,则它们的标量积为零;反之,则它们的标量积为零。如果它们的角度是钝角,则乘积为负,否则为正。因此,要采取的步骤是:
(x y)
为(-y x)
)(x1 * x2) + (y1 * y2)
)编辑:您可以通过使用以下公式计算多边形的面积来确定顶点是逆时针还是顺时针排列:
1n-1 A = --- SUM( x(i)*y(i+1) - x(i+1)*y(i) ) 2 我=0
其中n
是顶点数。x(n)
和与和y(n)
相同(闭合多边形)。x(0)
y(0)
如果为正,则顶点按逆时针顺序排列,否则按顺时针顺序排列。
编辑:当您简化旋转和标量积的步骤时,您会得到二维叉积的公式x1*y2 - x2*y1
。这简化了上面的第一步:
((x1 * y2) - (x2 * y1))
对于第一种方法的复杂性感到抱歉。