[英]How to find corner points of a polygon composed of squares?
一组相邻的正方形组成一个多边形,正方形的4个顶点的所有坐标都是已知的,但是正方形的顺序是未知的。
在示例图像中,我用红点突出显示所有角点。 如果以正确的顺序连接它们,可以恢复完整的形状,就像在正确的位置放置正方形一样。
所以问题是,如何找到红点,以及它们的顺序?
也许还有一个问题是如果形状有一些洞怎么办?
计算输入中每个顶点出现的次数。 出现奇数次的就是你的“角落”。
从每个“角”开始,沿着其中一个连接边沿直线(即保持相同方向)穿过“偶数”顶点,直到您读取另一个角(奇数顶点)。
如果您到达直线边缘的末端,但它不在拐角处,则回溯到最后一个拐角(但将所有边缘标记为“已使用”)。 从拐角处选择一个未使用的外边缘,然后再次沿直线继续。
从新拐角继续,仅使用以前未使用的边。 当您返回起始角时,您已经完成了角的列表,以便获得该(连接的)形状。
如果仍有未使用的角,则随机选择其中一个并重复步骤 #1。 重复此步骤,直到考虑到所有角落。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.