将定义为点的平铺方块组合成矢量的方法

时间:2010-03-20 11:01:00

标签: tiles vector shapes

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

Diagram http://i39.tinypic.com/2zjcind.png

1 个答案:

答案 0 :(得分:0)

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

1)获取整个平铺的边界框 - 即所有x和y平铺的最小(x),最小(y)到最大(x),最大(y)

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

3)在Y轴上重复上述

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

这适用于非凸形状,如果瓷砖上有洞,也适用。