Flood fill

✍ dations ◷ 2025-12-11 12:25:51 #计算机图形学,算法

Flood fill算法是从一个区域中提取若干个连通的点与其他相邻区域区分开(或分别染成不同颜色)的经典算法。因为其思路类似洪水从一个区域扩散到所有能到达的区域而得名。在GNU Go和扫雷中,Flood Fill算法被用来计算需要被清除的区域。

Flood fill算法接受三个参数:起始节点,目标颜色和替换颜色。算法遍历所有的节点以寻找和起始节点相连的节点(通过一条目标颜色的路径相连),然后改变他们的颜色为替换颜色。目前有许多flood-fill算法的构建方式,但是他们都显示或隐式的使用队列或者栈根据我们是否考虑当前节点对角线方向的节点,算法分为四路算法(不考虑对角线方向的节点)和八路算法(考虑对角线方向的节点)。

最简单的实现方法是采用深度优先搜索的递归方法,也可以采用广度优先搜索的迭代来实现。

相关

  • 水解水解是一种化工单元过程,是物质与水反应,利用水形成新的物质的过程。通常是指盐类的水解平衡。无机物在水中分解通常是双分解过程,属于复分解反应。水分子也被分解成氢离子和氢
  • 火山口湖国家公园火山口湖国家公园(英语:Crater Lake National Park)或克雷特湖国家公园是位于美国俄勒冈州南部的一个国家公园。火山口湖国家公园是俄勒冈州内唯一的一个国家公园。火山口湖国
  • 纤维病毒科丝状病毒科(学名:Filoviridae),单股反链病毒目,是一种感染脊椎动物的病毒,包含的属有埃博拉病毒和马尔堡病毒。病毒粒(Virion)具有复杂构造,具外套膜(envelope),核鞘(nucleocapsid),聚合酶
  • 矿山县厄尔士山县(德语:Erzgebirgskreis),又称矿山县,位于德国萨克森自由州,为德国东部地区面积最大及人口最多的县,其前身为安那堡市,2008年安娜贝格与邻近三个县合并成立厄尔士山县,县首
  • 渤海湾渤海湾是渤海西部的一个海湾,位于河北省唐山,天津,河北省沧州和山东省黄河口之间。海河注入渤海湾。渤海湾盆地形成于中生代和新生代。渤海湾中有丰富的石油储藏。其北部是著名
  • 象牙质牙本质(dentin),也称为象牙质,是构成牙齿主体的微黄色组织,介于牙釉质与牙髓之间。牙本质的组成70%为无机物(主要为钙和磷),20%为有机物,10%为水分。硬度低于牙釉质,高于牙骨质。和牙釉质
  • 琅琊王氏琅邪王氏(“琅邪”一作“琅琊”),中国中古时期的一个以琅邪郡为郡望的王姓世族。琅邪王氏在汉朝兴起,东晋时期发展为侨姓士族的最高门第,与陈郡谢氏并称“王谢”。秦朝名将王翦之
  • 加拿大西部加拿大西部(Western Canada)是加拿大的地理概念,通常也被称作西部省份或者直呼西部。包含安大略西部的英属哥伦比亚、阿尔伯塔、萨斯喀彻温和马尼托巴四省。西加拿大又可以根据
  • 米哈乌 (波兰国王)米哈乌·科雷布特·维希尼奥维茨基 (波兰语:Michał Korybut Wiśniowiecki、立陶宛语:Mykolas I Kaributas Višnioveckis,1640年7月31日-1673年11月10日),亚雷马·维希尼奥维茨
  • 施塔费尔湖施塔费尔湖(德语:Staffelsee),是德国的湖泊,位于该国东南部,由巴伐利亚负责管辖,处于加米施-帕滕基兴县,长4.6公里、宽3.8公里,面积7.7平方公里,海拔高度649米,平均水深9.8米,最大水深39