中文

多边形凸性:又一个 O(n) 测试

计算几何 2007-05-23 v2 数据结构与算法

摘要

n 边形定义为平面上 nn 个点的序列 =(V0,...,Vn1)\P=(V_0,...,V_{n-1})。如果 nn 边形 \P 的顶点集合 V0,...,Vn1{V_0,...,V_{n-1}} 的凸包包络与边 [V0,V1],...,[Vn1,V0][V_0,V_1],...,[V_{n-1},V_0] 的并集重合,则称 nn 边形 \P 是凸的;如果此时 \P 中没有三个顶点共线,则称 \P 为严格凸的。我们证明了,当 n3n\ge3 时,nn 边形 \P 严格凸的充要条件是:x 轴与向量 V1V0,...,V0Vn1V_1-V_0,...,V_0-V_{n-1} 之间夹角的序列 (\al0,...,\aln1)[0,2π)n(\al_0,...,\al_{n-1})\in[0,2\pi)^n 的循环移位是严格单调的。此外,还证明了该结果的“非严格”版本。

关键词

引用

@article{arxiv.cs/0701045,
  title  = {Polygon Convexity: Another O(n) Test},
  author = {Iosif Pinelis},
  journal= {arXiv preprint arXiv:cs/0701045},
  year   = {2007}
}

备注

14 pages; changes: (i) a test for non-strict convexity is added; (ii) the proofs are gathered in a separate section; (iii) a more detailed abstract is given