给定笛卡尔坐标系中的多边形(不一定是凸多边形),我想知道有没有办法检查该多边形的对称性?
我可以想到一个O(N)的解决方案:使用旋转卡尺来检查每对相反边是否平行且大小相等。但是,我无法证明该算法的正确性。您能否提供更好的解决方案?
给定笛卡尔坐标系中的多边形(不一定是凸多边形),我想知道有没有办法检查该多边形的对称性?
我可以想到一个O(N)的解决方案:使用旋转卡尺来检查每对相反边是否平行且大小相等。但是,我无法证明该算法的正确性。您能否提供更好的解决方案?
这将证明您的多边形确实是对称的。
复杂度:N,假设您可以直接从它们的坐标访问顶点。
首先,您需要定义要检查的对称类型(多边形应该保持不变的转换方式)。您提供的算法将检查凸多边形的中心对称性(因为旋转卡尺只适用于凸多边形)。