作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些 线路 他们的交集描述了一个多边形,如下所示:
我知道线条的顺序,以及它们的方程。
为了找到内角,我找到了每条线的方向。但是我很困惑,因为减去两条线的方向会给出两个不同的角度,即使我是按照多边形的边的顺序来做的。
例如,在下图中,如果我只减去线条的方向,我将得到以下任何角度:
让我更困惑的是,当多边形不是凸面时,我的角度将大于 180,而使用我的方法我根本没有得到正确的角度:
我发现这种处理问题的方式是错误的。
那么,使用 找到内角的最佳方法是什么?只是线条 ?我知道对于凸多边形,我可能会找到向量,然后找到它们之间的角度,但即使对于我的示例中的 P6,向量方法也失败了。
无论如何,我更喜欢一种不包含解决该凹度问题的条件情况的方法。
谢谢。
最佳答案
对于有序线,可以按顺时针顺序找到交点(多边形顶点)。然后你可以计算内角:
Angle[i] = Pi + ArcTan2(V[i] x V[i+1], V[i] * V[i+1])
Angle[i] = Pi + ArcTan2( dx_in*dy_out-dx_out*dy_in, dx_in*dx_out+dy_in*dy_out2 )
Pi
之后更改加号减号为逆时针方向。
dx1 = 5; dy1 = -15; dx2 = -15; dy2 = 5
Angle = Pi + ArcTan2(5*5-15*15, -5*15-5*15) = Pi - 2.11 radians ~ 59 degrees
(0,-1) (1,0) (L-curve)
Angle = Pi + ArcTan2(1, 0) = 270 degrees
关于geometry - 求多边形的内角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083480/
我是一名优秀的程序员,十分优秀!