将形状划分为一致的子区域

时间:2012-10-28 07:21:20

标签: algorithm shape geometric-arc

给定一个不规则的多面面多边形,边长相等。有没有算法将它分成六个相等大小的全等区域?

1 个答案:

答案 0 :(得分:3)

没有。这种细分并非总是可行:

考虑通过将两个正多边形PP1与不同且非常大的边P2N1连接而获得的多边形N2。此多边形将一对圆盘C1C2近似为任意精度。

考虑将其细分为六个全等区域。

考虑P1的顶点集。必须有一个至少包含(N1)/6个顶点的区域。调用顶点V1和区域R1。必须有一个至少包含(N2)/6 P2V2个顶点的区域。调用区域R2的顶点R1 != R2

如果R2,则必须存在R12*N1 < N2的同余映射。如果R1 == R2,则无法进行此类映射。选择N2比N1大得多。

因此,V1。有一个区域同时包含V2P2。每个区域的直径必须大于C1的直径。

使用双圆近似。每个区域必须包含至少为C2周长的1/6的弧和至少为R1周长的1/6的弧。此外,至少有一个区域位于两个圆圈内,没有区域完全位于较小的圆圈内。

考虑12的可能同余。任何一致性要么是1)是沿主轴的反射,要么是2)P或3之外的P1或P2的映射,或者将周边的某些部分映射到P的内部。反射是不充分的,因此任何细分必须包含一致性将P1的某些部分映射到P1的内部。

因此,每个区域边界必须包含直径为C6的凹弧。直觉上,这表明这种细分不可能存在。


您可以检测到许多类别的多边形:

  • 顺序6旋转对称D6。这些可以以任何尊重旋转对称性的方式细分。
  • 顺序-3二面对称C3(顺序-3旋转+镜像)。沿着镜子切开。
  • 使用四个多边形在顶点处相交的平面平铺平面的形状。这些是具有两对匹配相对路径的形状。在一个方向上复制切削刃,在另一个方向上复制三个切削刃。
  • 一些形状具有反射对称性,并且每个单独的一半具有3阶旋转对称性。这些也可以被检测和切割。
  • 某些形状具有2阶旋转对称性,并且可以在具有3阶旋转对称性的两个全等区域中切割。沿着边界寻找重复的模式。
  • 某些形状具有3阶旋转对称性,并且可以在具有对称性的三个区域中分割。我不确定我是否能够可靠地检测到这样的形状(检测C6, D3 and checkerboard tiles => easy to subdivide; polyforms => maybe possible; the rest => probably no subdivision很容易,后续切割不是这样)而且我是一个人。
  • ...
  • 多边形是由正方形制成的形状,多边形是由六边形制成的形状,而多边形是由三角形制成的形状。它们很容易被发现,而一些甚至还有一个细分。细分(如果存在)也可能难以检测,但至少您可以枚举所有以正确大小对齐对齐网格的细分,以查看它们是否一致。
  • ...

为了证明问题的复杂性:存在一类逻辑谜题,其目标是在两个全等区域中分割复杂形状(60个方格)。如果 不容易两个全等区域中拆分多元,那么您如何期待? 计算机六个全等区域中拆分一般形状

如果想要检测可能进行细分的大多数情况,则必须在编程时间(以支持越来越多的特殊情况)和测试强度之间进行权衡。对于初学者,请坚持使用{{1}}。