在多邊形區域內部填充某元素。
種子演算法,即從內部某一點開始填充,再遞迴填充周圍的點(上下左右——四連通)。直到遇到邊界。
void tianchong(int x,int y,int color)
}
在實際應用中,出現了遞迴呼叫棧溢位的情況,先在這裡留坑,下次再補上具體的資料吧。
基礎演算法在實際應用中,除了上面所說的當填充面積過大時,出現棧溢位的錯誤外,還會出現重複填充,很大程度上影響效率。一種改進思路就是,建立乙個存放每條連續掃瞄線的最右端點的堆疊。在這篇**中有具體的偽**實現掃瞄線種子填充演算法的改進。
這個演算法算是遞迴思想的一種應用,其效能自然也是和遞迴密切相關。分析這一塊還沒細想。留坑待填。
種子填充問題
兩種連通區域 四連通區域 從區域內一點出發,可通過上 下 左 右四個方向的移動組合,在不越出區域的前提下,能到達區域內的任意畫素 八連通區域 從區域內每一畫素出發,可通過八個方向,即上 下 左 右 左上 右上 左下 右下移動的組合,在不越出區域的前提下,能到達區域內的任意畫素。基本原理 從多邊形區域...
種子填充演算法(Uva 572
題目描述 給定乙個m n的矩陣,由 和 組成。求 一共有幾塊是連通的。思路 使用dfs遍歷,即找到乙個 後,將與之在同一塊的 均標記,之後碰到就可以忽略。然後遍歷一遍矩陣即可。如下 include include include define clean i memset i,0,sizeof i ...
基於集合的種子填充演算法
通過實踐,我們不難發現,基礎的種子填充演算法根本沒法使用。常常遇到的問題是 stack overflow 棧溢位 一種可行的解決辦法是通過自己構建資料結構棧來將遞迴演算法改非遞迴演算法,但是實踐的執行結果還是極其緩慢。現在通過使用集合來優化這個演算法,雖然效率仍然不理想,但還是有一定現實意義 給學習...