kan*_*ani 5 iphone colors flood-fill
我对iPhone开发很新.我想在iPhone中使用FloodFill算法创建一个应用程序.我不知道FloodFill.请向我解释FloodFill算法的目的.如果您为FloodFill(iPhone)提供示例应用程序意味着我真的非常非常高兴.因为我从早上开始探索FloodFill但是,我找不到任何东西.
我的任务是,我想用颜色逐个填充图像.这意味着,如果我选择一种颜色并单击图像的特定区域,则意味着它将使用所选颜色进行着色.
请帮我这样做.
编辑:我无法为iPhone的Floodfill算法实现编写代码.
它是一种递归算法,意味着它会调用自己来完成整个过程的较小部分.
洪水填充将从一个像素开始.然后它将检查四个相邻的像素(上,下,左,右).对于与我们开始使用的颜色相同的四个像素中的任何一个,它将从该像素开始调用另一个泛光填充.
想象一下小图片在哪里.是一种颜色,X是另一种颜色.这些数字仅供参考,所以7,0是右上角.(忽略红/黑语法hilighting!)
01234567
0........
1.XXXX...
2.X..X...
3.X...X..
4.XXX..X.
5...X..X.
6...XXX..
7........
Run Code Online (Sandbox Code Playgroud)
现在假设你在3,3开始填充洪水.它将改变3,3到新颜色.然后它会检查,向下,向左,向右.对于向上(3,2),颜色相同(一个点),因此它将从那里开始另一个洪水填充.对于向下(3,4),颜色是不同的,所以这个分支将停止.左,(2,3)和右(4,3)也是相同的(点),因此从那里开始更多的洪水填充分支.
让我们说新颜色是O,所以我们现在有这个:
01234567
0........
1.XXXX...
2.X.OX...
3.XOOOX..
4.XXX..X.
5...X..X.
6...XXX..
7........
Run Code Online (Sandbox Code Playgroud)
"向上"分支从(3,2)开始新的洪水填充.从这里开始,是X,所以停止.右边是X,所以停止,向下是O,所以停止,但是左(2,2)是相同的(一个点),所以它从那里开始一个新的洪水填充.
同样,原始洪水填充的"右"分支从(4,3)开始.它可以使用的唯一分支是向下(4,4).现在我们有了这个:
01234567
0........
1.XXXX...
2.XOOX...
3.XOOOX..
4.XXXO.X.
5...X..X.
6...XXX..
7........
Run Code Online (Sandbox Code Playgroud)
因此,洪水填充从(4,4)开始,通过向右和向下分支.然后,这两个分支中的一个将分支到(5,5).到那时,将不再有可能的分支机构.
那是我的午餐时间:)
| 归档时间: |
|
| 查看次数: |
2993 次 |
| 最近记录: |