2

有没有一种很好的算法方法来组合多个正方形(每个正方形有四个 x/y 点)来绘制画布中连接图形的轮廓?

我想确保工作的数字如下:

  • 两个正方形连接成一个矩形
  • 四个正方形连接成一个更大的正方形
  • 两个对角线的正方形,就像一个矩形,每端有 45 度的三角形——这可能是最不规则/最特殊的情况......
  • 三个或四个正方形连接在一起形成像俄罗斯方块(TM)块“L”块的凹形

有没有一种简单的方法来计算用于从所有正方形点绘制线路径(可能是填充图形)的外部点?

谢谢!

更新:我们想要这样做的原因是因为我们想要显示在 2xn 数组中彼此相邻的同一组的正方形(但在某些情况下也可能是 1xn)。如果我只是遍历不同的方块并以其他方式形成分组,也许会有一个更简单的答案?

4

2 回答 2

1

你是从“我有正方形”的角度来看的。

但是你需要从“我有积分”的角度来看(每个方格只有4个积分)。

你真正要找的是“凸壳” ——这个问题已经在这里得到了回答:

包含一组点的多边形

实际上,我开始绘制您的解决方案来解决它 - 这就是我想到的时候。

当我在制作图表时,我意识到这些形状的轮廓有几个有趣的属性——当我想“是的,正确的——有人已经这样做了——这一定已经存在了”。

所以我用谷歌搜索“构建包含其他多边形的最小多边形”

并找到了另一个 SO 问题。

尽管您确实有两个看似不同的要求:

两个对角线的正方形,就像一个矩形,每端有 45 度的三角形 - 这可能是最不规则/特殊的情况......三个或四个正方形连接在一起形成一个凸形,就像俄罗斯方块(TM)片“L”片

在上面的第一个示例中,您说您想要“凸包”。

但是在上面的第二个示例(俄罗斯方块)中,您需要“凹壳”。

祝你好运。

这是我的图表:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

于 2012-02-26T22:23:48.497 回答
0

我很好奇你为什么要这么做。

无论如何,我的直觉是,你要找的叫“凹壳”,但我不是专家。

看看这个问题,看看这是否是你想要的。

编辑:也是gis.stackexchange.com 上的这个问题

于 2012-02-26T22:25:58.540 回答