2015-10-14 87 views
0

我被困在一个问题上,需要一些帮助或指导可能的解决方案。iOS中的油漆桶

基本上在我的应用程序中会有一个带有几个区域的地图。 用户可以选择这些区域中的任何一个,此时该区域被填充颜色。

想象一下这样的地图,所以我需要能够改变只有一个国家的颜色。 enter image description here

喜欢的东西在绘画的书籍(https://itunes.apple.com/pt/app/colorfly-best-coloring-book/id1020187921?mt=8)会发生什么,或将Photoshop 油漆桶命令。

任何想法如何在iOS上得到这样的东西?

在此先感谢

+1

您正在寻找一种名为“Flood fill”的算法,即https://en.wikipedia.org/wiki/Flood_fill –

+0

也许看看这里? https://github.com/Chintan-Dave/UIImageScanlineFloodfill –

+0

感谢您的答案。请添加一个问题的答案,以便我可以接受它。 – DaSilva

回答

0

你要找的油漆桶技术是一组图形算法通常被称为“flood fill”。根据具体情况和性能需求,实施方法有多种。 (还有更多在维基百科的链接。)

,我与它没有任何经验,但这里是从GitHub库,声称实现这个为iOS给予UIImage对象:https://github.com/Chintan-Dave/UIImageScanlineFloodfill

回复:你的问题有关在没有用户触摸的情况下这样做:是的,您需要将国家/地区的地图保留为(x,y)点,以便在需要时可以重新填充国家/地区。也就是说,县边界的错综复杂可能会使算法填充不精确,而且不会对原始源进行更仔细的标准化。如果您的整个地图只包含一小部分可能的状态,还有其他一些方法可以实现此目标,例如保留一组完整的可能图像(在Photoshop中创建)并将其切换出来,或保留一组按国家“覆盖“图像,根据需要交换。 (但是,如果洪水填充在源图像上是准确的,并且性能满足您的需求,那么很好。)