2

我需要在我的 iOS 游戏中实现轮廓检测功能,我正在使用 cocos2d 2.1 编写例如用户将提供给我一个图像(PNG 透明):

在此处输入图像描述

因此,我需要检测形状多边形点并从中创建 box2d 主体,然后我将能够将此图像放入我的 box2d 场景中。

我希望输出 NSMutableArray 具有在图像上检测到的每个多边形的点数组。PhysicsEditor也是如此,结果如下:

在此处输入图像描述

这也是使用VertexHelper的结果(显示错误的检测方式,作为一个多边形......):

在此处输入图像描述

还有SpriteHelper 但没有检测到图像的其他部分

在此处输入图像描述

我的问题是:我该怎么做?什么方法更好更快?我一直在谷歌寻找解决方案,但是我找不到任何适合我需要的解决方案......

4

2 回答 2

1

我猜您正在寻找 Sobel 边缘检测过滤器。查看 Brad Larson 创建的GPUImage框架。它使用 Objective-C 实现了 Sobel 边缘检测过滤器,这可能对您有用。

于 2013-11-11T18:42:19.983 回答
0

最后通过使用 Chipmunk Autogeometry 功能完成此操作。像魅力一样工作。

只需使用https://github.com/slembcke/ConcaveSprite/blob/master/ConcaveSprite/ConcaveSprite.m我已经节省了我的时间......

于 2014-01-13T15:29:22.097 回答