0

如果我平铺正方形,并且正方形可以由它们的坐标定义,我如何将由多个正方形组成的形状简化为定义整个形状每个边缘的向量?伪代码或通用术语都可以。

图表

4

1 回答 1

0

我能想到的第一件事是(可能不是最有效的方法):

1) 获取整个平铺的边界框 - 对于所有 x 和 y 平铺,它是 min(x)、min(y) 到 max(x)、max(y)

2) 对于每一行,从 STATE==EMPTY 开始,遍历每一列:当你击中一个正方形时,STATE 变为 FULL,当你找到一个洞时变为 EMPTY。每次 STATE 从 EMPTY 变为 FULL 时,保存该正方形的左侧线段,每次 STATE 从 FULL 变为 EMPTY 时,保存该正方形的右侧线段。

3) 在 Y 轴上重复上述操作

现在你有一个只包含最外面的线段的集合,你可以将那些共线的线段组合起来,得到整体形状。

这适用于非凸面形状,也适用于平铺中有孔的情况。

于 2010-03-20T11:30:18.433 回答