生成alpha图片轮廓的算法?

时间:2010-07-12 03:15:25

标签: c++ c algorithm

我正在试图找出一个算法,它可以查看原始rgba像素和返回构成示例中对象多边形的点:

http://img706.imageshack.us/i/polii.png//

它不必返回贝塞尔曲线或任何平滑或花哨的东西,也不必像我所展示的那样返回连接的轮廓,但基本上是构建这种轮廓的点。我正在这样做,所以我可以存储这些,并避免在我的游戏中像素完美的碰撞检测。

由于

我希望verticies不是轮廓图像

1 个答案:

答案 0 :(得分:2)

如果您只想要一条线的图像(而不是矢量),那么您要查找的算法字段是“边缘检测”,请参阅http://en.wikipedia.org/wiki/Edge_detection

如果您一直在寻找类似的圆圈,您可以尝试使用广义Hough变换(http://en.wikipedia.org/wiki/Hough_transform),它可以为您提供圆形的位置,而不仅仅是轮廓图像。

如果您正在尝试进行快速碰撞检测(并且不想使用为您执行此操作的available game framework),那么可以考虑使用边界框构建碰撞检测器以执行大部分工作为了效率。但是你必须仍然使用真正的位图,以防一个完全位于另一个或其他内部 - 轮廓不会相交,但它们肯定会发生碰撞。