我有一個畫布上繪製線有點問題,帆布鋸齒狀邊緣的困境與行/招
基本上我想要的線路是好的,柔軟,半不透明然而畫布似乎只想要用最後渲染的線段做這件事。
看看這裏,你會看到最後畫出的線段很好,而且我也很想看到它),但是隨着動畫的播放,先前繪製的線條會變得粗糙和討厭。
我注意到,如果我使用closepath這不然而發生,因爲間隔/動畫,我不能用這個每個渲染爲線,去所有的地方:
任何人有任何想法如何阻止這種情況發生,我會非常感激。
非常感謝 一個
我有一個畫布上繪製線有點問題,帆布鋸齒狀邊緣的困境與行/招
基本上我想要的線路是好的,柔軟,半不透明然而畫布似乎只想要用最後渲染的線段做這件事。
看看這裏,你會看到最後畫出的線段很好,而且我也很想看到它),但是隨着動畫的播放,先前繪製的線條會變得粗糙和討厭。
我注意到,如果我使用closepath這不然而發生,因爲間隔/動畫,我不能用這個每個渲染爲線,去所有的地方:
任何人有任何想法如何阻止這種情況發生,我會非常感激。
非常感謝 一個
奇怪的代碼!雖然這樣做的方式似乎有點獨特,但動畫是整潔的,所以讓我們來看看。
首先要清楚,當你製作一條路徑時,你可以繼續一遍又一遍地敲擊它。
所以,如果你有三條線段A,B,C的路徑,你做的事:
A,中風,B,中風,C,中風
你會得到段描邊3次,B撫摸了2次,C撫摸了一次。
這實際上是你在這裏做的。
可避免容易被你的路徑年底撫摸只有一次:
這將停止動畫,但說明是什麼問題。您可以通過清除屏幕來修復動畫。因此,與部分ABC,我們會做:
A,清晰,中風,B,清晰,中風,C,清晰,行程
然後你會得到段A撫摸一次,清屏和然後AB段被撫摸一次,屏幕最後一次被清除,所以ABC段被撫摸一次。這是你想要的。
問題在於清除屏幕意味着清除您之前繪製的所有形狀!在這裏看到:
有幾種方法來解決這個問題:
要做#3我們所要做的並不是在每個新零件的開始處調用beginPath
。相反,我們只在最開始時只撥打beginPath
一次,每個新部分僅僅是一個moveTo
操作!
這應該是足夠的信息,讓你在正確的軌道上!
這很酷,感謝您的幫助,但是到達最後一部分時,速度似乎有相當大的降低。任何想法可能會導致這種情況在你的修正?清除和重新繪製? – Alex 2012-02-28 15:23:45
唯一的原因我質疑這種多產的解決方案/答案是,有大約5個其他繪圖對象,我必須合成,所以它會變得很沉重...... :-) – Alex 2012-02-28 15:29:44
這可能是。取出console.log語句應該會有所幫助:http://jsfiddle.net/xSPuM/11/ – 2012-02-28 16:15:02