1

我有两个图像视图。它们是“拼图”,我想测试一个是否适合另一个。并不是说框架重叠。我猜它是一个 CGRect 的东西......但似乎他们测试了外部边界。任何想法,将不胜感激?谢谢。

4

2 回答 2

2

只是在这里集思广益......也许这会让你想到一些对你有用的东西。如果图像不重叠,则在图像 B 上绘制图像 A 将产生与在图像 A 上绘制图像 B 相同的图像。如果它们重叠,则会产生不同的图像。您可以执行类似绘制图像 A,然后是 B。创建结果的校验和,再次绘制 A,然后对其进行校验和。如果校验和匹配,则拼图适合。

如果您有一个代表每个图像的 1 位掩码,那么如果它们不重叠,那么对它们进行 OR 运算和 XOR 运算将得到相同的结果,而如果它们重叠,则会得到不同的结果。

于 2012-09-02T01:07:41.560 回答
1

你事先知道正确的棋子顺序吗?可能最好将标签分配给每个UIImageView代表图像的索引号。然后,您只需创建一种网格并检查该块放置在哪个单元格中。如果单元格编号和UIImageView标签匹配 - 那么这是正确的地方。

如果您只有两张图像并且一张必须适合另一张的特定区域,您可以存储该孔的框架并检查该片是否放置在该框架中心附近的某个位置。它将更加用户友好,因为当您检查像素或位掩码时,您希望用户非常精确。或者您的比较代码应该允许一些变化并且会非常复杂。

但是,如果您不想对孔框进行硬编码,则可以动态计算它(只需在图像中找到透明区域)。无论如何,这个解决方案将比动态检查位匹配更有效。

于 2012-09-02T03:53:20.913 回答