简介:<正>曾给许多朋友测试过这几道题,无一不说“不可能得出这样的答案”。你也不妨来试试。请看题:1+1=12+1=13+4=14+9=15+7=16+18=1怎么会这样呢?其实,一语就可道破。我们只要给这些数字加上适当的
简介:在计算机图形学中有一个重要的算法:对某个闭合图形区域填充。目前一般商业软件中都是使用了保留版权的工具或者函数库的函数,比如在TC有floodfill(intx.inty.intborder),在VC的CDC中有FloodFill(intx.inty.COLORREFcrColor),但这些工具或函数仅仅向用户提供了一个接口调用方式,具体实现方法却未曾透露,在网上查找相关文库后也是语焉不详,实际使用时其实用性不好。比如需要渐变填充时,这种函数的用处就几乎不存在。实际上,这个问题涉及到01稀疏矩阵的相关算法。本文拟揭示其实现过程。文章处理过程中以字节表示01稀疏矩阵,填充闭合区域的具体实现过程中分为两步:(1)边界的表示算法(拟以向量法或者双向链表),边界是否闭合的判别;(2)区域内外点的判别算法,主要提供了两种算法:射线法及渗水法;(3)区域填充算法。