01稀疏矩阵中封闭区域的填充

(整期优先)网络出版时间:2007-05-15
/ 1
在计算机图形学中有一个重要的算法:对某个闭合图形区域填充。目前一般商业软件中都是使用了保留版权的工具或者函数库的函数,比如在TC有floodfill(intx.inty.intborder),在VC的CDC中有FloodFill(intx.inty.COLORREFcrColor),但这些工具或函数仅仅向用户提供了一个接口调用方式,具体实现方法却未曾透露,在网上查找相关文库后也是语焉不详,实际使用时其实用性不好。比如需要渐变填充时,这种函数的用处就几乎不存在。实际上,这个问题涉及到01稀疏矩阵的相关算法。本文拟揭示其实现过程。文章处理过程中以字节表示01稀疏矩阵,填充闭合区域的具体实现过程中分为两步:(1)边界的表示算法(拟以向量法或者双向链表),边界是否闭合的判别;(2)区域内外点的判别算法,主要提供了两种算法:射线法及渗水法;(3)区域填充算法。