繁体   English   中英

如何找到由正方形组成的多边形的角点?

[英]How to find corner points of a polygon composed of squares?

一组相邻的正方形组成一个多边形,正方形的4个顶点的所有坐标都是已知的,但是正方形的顺序是未知的。

在示例图像中,我用红点突出显示所有角点。 如果以正确的顺序连接它们,可以恢复完整的形状,就像在正确的位置放置正方形一样。

例子

所以问题是,如何找到红点,以及它们的顺序?

也许还有一个问题是如果形状有一些洞怎么办?

计算输入中每个顶点出现的次数。 出现奇数次的就是你的“角落”。

  1. 从每个“角”开始,沿着其中一个连接边沿直线(即保持相同方向)穿过“偶数”顶点,直到您读取另一个角(奇数顶点)。

  2. 如果您到达直线边缘的末端,但它不在拐角处,则回溯到最后一个拐角(但将所有边缘标记为“已使用”)。 从拐角处选择一个未使用的外边缘,然后再次沿直线继续。

  3. 从新拐角继续,仅使用以前未使用的边。 当您返回起始角时,您已经完成了角的列表,以便获得该(连接的)形状。

  4. 如果仍有未使用的角,则随机选择其中一个并重复步骤 #1。 重复此步骤,直到考虑到所有角落。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM