2
A
回答
2
這一切都取決於情況。
如果你手動創建幀緩衝區(基本上使用一個字節數組或類似的東西),你必須迭代你想改變的所有像素。因此,例如,開始於一個行的最左邊緣:上排
- 查找開始並接通像素,直到發現行形狀的第二端部(或行結束)
- 繼續對下一行
這當然只有當你擁有所有邊緣像素的工作。看看Marching Squares,可以得到一些幫助。
而且請更具體。 「最有效的方式來填充形狀」取決於很多你根本渲染庫的,如果它是光柵圖形等等...
編輯 注意,該算法的速度要快得多,如果你能生成邊緣像素,那麼不需要尋找邊緣的開始。
0
之前,您可以填寫的東西,你需要確定確切的邊界,在這種情況下,將構成識別圈內部。
之後,你可以檢查每個像素的圓周圍的一個框,如果它實際上在它。由於您必須對圓內的每個像素執行一些操作,並且圓中像素的數量與邊界正方形的像素數成線性關係(假設對於某個常量,邊界正方形的邊具有長度「半徑*常量」),則此操作應該接近最佳。
1
- 如果單詞「裏面」的話,邊界中的中斷將破壞意義。
- 像人類視網膜一樣的神經網絡在進行這種處理時非常高效。
- 在計算機上,您需要花時間來定義「內部」的含義。差距有多大?如何扭曲的邊界?
- 模擬一個很大的圓形蟲子彈回「內部」周圍 - 太大而不能穿過間隙但小於邊界的最小曲率半徑?????
2
標準flood fill算法將是一個凸形相當有效,並且將處理的情況下,形狀較不凸起的比你的預期。不幸的是它需要一個不間斷的輪廓。
4
構造凸包並添加缺失的像素。然後使用掃描線算法填充多邊形。
相關問題
- 1. 展開填充凸多邊形
- 2. 用QPixmap填充QWidget的有效方法
- 3. 填充矩形 - 繪畫方法(MIDP)
- 4. 用正方形填充framebuffer
- 5. 從數據庫值填充數組的最有效方法?
- 6. 爲每個組填充時間序列的有效方法
- 7. Python - 什麼是生成填充最有效的方法?
- 8. 「填充」有效載荷的最簡單方法?
- 9. 多邊形填充算法
- 10. 填充三角形算法
- 11. 凸/凹多邊形內的所有點 - 更好的方法?
- 12. 填充結構更有效
- 13. 有效填充基質
- 14. 貓鼬填充 - 有效性
- 15. CasperJS的填充方法
- 16. 以高效的方式填充矩陣
- 17. 的Java2D:填一個凸起的圓形多邊形(QuadCurves)
- 18. 凸多邊形,圖形算法
- 19. 獲取洪水填充的邊界矩形的快速方法
- 20. 沒有填充3D圖形的球體
- 21. 拖動沒有填充的形狀
- 22. Listview填充方法出錯
- 23. 填充使用PadRight方法
- 24. 填充多邊形
- 25. 最有效的方式來填充GridView中的DropDownLists?
- 26. 用六邊形填充圓(不同的方法)
- 27. 在C#中填充矩形陣列的擴展方法
- 28. 非凸多邊形 - 使用凸包算法的預處理
- 29. 使用JSON回調中的HTML數據填充300+ DIV的有效方法?
- 30. 什麼是使用PHP填充表格的最有效方式?
我喜歡「bug」的想法。你也可以在外部運行它,以提供超出間隙的第二個邊界,然後用另一種方法填充內部。 – 2012-03-15 15:05:41