定义:多边形的平面被称为相对于直线单调,如果每线正交相交最多两次。大号大号P
给定多边形,是否可以确定是否存在任何线,使得多边形相对于是单调的?如果是,怎么办?大号P 大号
以前,我问了一个相关的问题(在那里,我问如何确定多边形是单调相对于一个特定的行),但现在我感兴趣的情况下,当是不提供或预先规定。
定义:多边形的平面被称为相对于直线单调,如果每线正交相交最多两次。大号大号P
给定多边形,是否可以确定是否存在任何线,使得多边形相对于是单调的?如果是,怎么办?大号P 大号
以前,我问了一个相关的问题(在那里,我问如何确定多边形是单调相对于一个特定的行),但现在我感兴趣的情况下,当是不提供或预先规定。
Answers:
有可能的。
考虑您的多边形并考虑“凹”顶点。它们精确地定义了哪些线将与多边形相交两次以上。在下图中,我标记了禁止角度的间隔(红色)。如果将它们放在一起并在红色光盘上看到一个孔,则存在授权角度(蓝色)。所述多边形是然后相对于斜率的任何线单调- 1 /黄褐色δ(绿色)。
现在是算法。
令是多边形的第i个顶点。首先计算绝对角度α我边缘(v 我v 我+ 1)和内角β我顶点v 我。使用所有好的编程语言中可用的功能。atan2
β我 = α 我+ 1 - α我 + { 0 ,如果 α 我+ 1 ≥ α我 2 π 如果 α 我+ 1 < α我
扭转顶点的顺序,如果他们不向逆时针方向顺序,即,如果不为负。(小号= - 2 π:逆时针,š = 2 π:顺时针方向)。
下面只对本内角大于大π即,β Ĵ > π。我照片中的红色。我们的目标是找到一个角度δ,是不是在∪ Ĵ [ α Ĵ + 1,α Ĵ ]模π。即,使得对于所有Ĵ使得β Ĵ > π:
.
If you have find some then exists and is of slope . Otherwise is not monotonous.