[問題] 遞迴次數有沒有上限?
不好意思我是java的新手(剛學第五天...)
如果發問不得當真的很抱歉...
我目前正在寫小畫家
但剛剛寫油漆桶功能的時候卻遇到奇怪的問題
基本上我是用Depth First Search的概念寫成遞迴函數
從滑鼠點下去的那點作為樹根 一直向外擴散尋找需要變色的像素
擴散順序是先往右邊找 再往上、往左 最後往下找
結果測試結果發現
如果用鉛筆圈出一塊小面積(有測過奇形怪狀) 油漆桶都可以成功把內部著色
但如果面積稍微大一點(大概超過50x50個像素的話)
它就無法著色了
所以懷疑是如果遞迴呼叫太多次它就會發生問題
測試了一下也發現
如果面積太大的話 遞迴總是跑到一半就自動被強行結束(每次結束的點都不一樣)
可是遞迴次數應該不可能會有限制吧!?
上網都沒有查到這方面有什麼限制存在
也不太可能是演算法出錯 因為面積夠小還是可以成功著色
由於程式碼有點多(大概25行) 不太確定要不要PO出來
遞迴函數傳入的參數有三個
一個是BufferedImage
一個是跟像素數量一樣多的布林二維陣列 還有一個Point
難道是傳入的參數太龐大的問題?
如果有需要檢查程式碼的話我可以再貼出來@@
煩請高手解惑!!
----------------------------
對不起我不知道有錯誤訊息這種東西QQQQ
是下面這個嗎?
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
它後面接了很多 at .....
前幾個是這樣
at java.awt.image.DirectColorModel.getRGB(DirectColorModel.java:438)
at java.awt.image.DirectColorModel.getRGB(DirectColorModel.java:704)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871)
at painter.test2.recursive(test2.java:887)
at painter.test2.recursive(test2.java:891)
at painter.test2.recursive(test2.java:891)
之後全部都是recursive函數
對不起我以後會注意版規的QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.250.189
推
03/01 17:22, , 1F
03/01 17:22, 1F
→
03/01 17:53, , 2F
03/01 17:53, 2F
推
03/01 18:47, , 3F
03/01 18:47, 3F
→
03/01 18:48, , 4F
03/01 18:48, 4F
※ 編輯: tossakite 來自: 140.112.250.189 (03/01 21:06)
推
03/01 21:15, , 5F
03/01 21:15, 5F
→
03/02 09:05, , 6F
03/02 09:05, 6F
→
03/02 10:17, , 7F
03/02 10:17, 7F
推
03/02 15:18, , 8F
03/02 15:18, 8F
→
03/02 23:29, , 9F
03/02 23:29, 9F
→
03/02 23:31, , 10F
03/02 23:31, 10F
→
03/03 00:23, , 11F
03/03 00:23, 11F
→
03/04 02:10, , 12F
03/04 02:10, 12F
推
03/04 12:18, , 13F
03/04 12:18, 13F
推
03/04 14:23, , 14F
03/04 14:23, 14F
→
03/05 16:25, , 15F
03/05 16:25, 15F
→
03/05 16:27, , 16F
03/05 16:27, 16F
討論串 (同標題文章)