我的畫布上畫了很多東西,現在我想填充定義爲整個畫布的區域,除了幾個孔(我的孔是帶有圓弧的複雜形狀)。用孔填充區域
只有一個孔,它很簡單:我首先製作一個路徑,然後製作一個具有整個畫布矩形的子路徑,然後製作一個具有相反繞線的第二個子路徑。所以當我填充所得到的路徑時,我有效地填充了我的畫布,除了這個洞。
有幾個孔,只要我的孔不相交,它就可以工作:在相交的情況下,此方法填充我的孔的相交部分,這不是所需的結果。
所以這裏的問題:我怎樣才能填補一個形狀與孔相交?
現在我不想試圖明確地計算我的形狀的聯合,因爲它們的複雜性(涉及的弧)。這就是爲什麼我沒有嘗試getImageData()的原因。
這裏是一個圖形解釋:
這應該是非常快的源帆布和孔都被動畫但幾乎從來沒有在屏幕上超過3個孔。
你看過合成嗎? https://developer.mozilla.org/en/Canvas_tutorial/Compositing –
是的,但我沒有找到解決方案。你認爲你有嗎? –
事實上,再次思考,我可能會使用第二張(未顯示的)畫布繪製我的面具在目的地畫出我的洞。它似乎代價高,但我不覺得更好... –