问题描述
我有一个凸多边形(多边形A)和一个凹多边形(多边形B)。我想弄清楚给定凸多边形的旋转角度的凸多边形是否适合凹凹多边形的内部,因为凸多边形可以在凹多边形内部旋转360度。
天真的计算方式。
以多边形B的中点为原点初始化多边形A。 对于凸多边形的每个旋转角度,计算以下内容
步骤1:计算点对应于带旋转的凸多边形
角度。将所有旋转的凸多边形和
一组凹多边形
第2步:使用grahamscan(凸包)使用新的点集查找凸多边形。
第三步:现在有一个大的凸多边形,它将同时包含两个多边形,这意味着您具有新创建的多边形的顶点。我们称之为多边形C
步骤4:现在检查多边形C和多边形B是否相同
具有相同的顶点集(如果是),则意味着多边形B包含
多边形A
一个潜在的优化方法可能是利用旋转对称角度,但是我不确定是否可以使用它。由于我们正在处理凸多边形,因此我们必须找到(360 / n)度的第一个对称性。其中n是顶点数。
Symmetry of rotation for a square example
在上述示例的情况下,我们能否将旋转角度映射为说1度旋转对应于91度旋转,并且可以进行直至对称旋转角的过程?
在不迭代所有旋转角度的情况下解决此问题的任何其他有效方法。任何指针将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)