我正在开发一个简单的绘图应用程序,需要一个算法来实现泛洪填充。
用户工作流程如下(类似于Flash CS,只是更简单):
- 用户在工作区上画出直线。 这些被视为向量,可以在绘制后选择和移动。
- 用户选择填充工具,并单击绘图区域。 如果该区域在每个方向都被线包围,则应用填充。
如果在应用填充后移动线,则填充区域会相应更改。
有人有好的想法,如何实现这样的算法? 主要任务基本上是确定环绕点的线段(并以某种方式存储此信息,以防线条移动)。
编辑:说明图像(画布中可能还有其他线条,但不影响填充算法)
编辑2:更困难的情况:
编辑3:我已经找到了一种方法来填充孔多边形,请参考http://alienryderflex.com/polygon_fill/,现在主要问题是如何找到我的多边形?