已采納回答 / 燈元
?function drawStar(cxt,r,R,x,y,rot){??cxt.beginPath();????for(var i=0;i<5; i++){??cxt.lineTo(Math.cos((18+i*72-rot)/180*Math.PI)*R+x,??????-Math.sin((18+i*72-rot)/180*Math.PI)*R+y);???????cxt.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*r+x,???-Math.sin(...
2016-07-13
已采納回答 / 慕粉3591791
洗了個澡!??!問題解決!是畫字的問題,因為globalCompsitionOperation的屬性,如destination-out只顯示先畫的沒有重復部分,也就是說其他部分全部被清理!解決方案用離屏canvas技術?。?!
已采納回答 / iFaye
選擇button那里吧#號去掉
已采納回答 / 田小雨
我也試了一下你說的這種情況,確實沖突了,但是globalCompositeOperation本身就是定義源圖形和目標圖形的遮擋效果的,而如果設置了globalAlpha讓圖形都變成透明,目標圖形和源圖形就產生了疊加效果,二者沖突也能理解。
已采納回答 / 王小仙
把繪制的過程封裝成一個函數啊,,然后把?compositeType 作為參數傳進去,, 你這樣寫把值都寫死了,,雖然每次點擊按鈕都能改變?compositeType 的值,,但是并不會把?compositeType 給他?context.globalCompositeOperation,,因為你下面的寫的繪制過程只會執行一次,,每次點擊按鈕他們并不會執行,,
已采納回答 / fengyunzhu
看一下邏輯就知道原因了當radius大于700時(比方說是705),?isIncrease設為了false,接著radius開始縮小執行-5操作,此時radius為700按原先邏輯,再次執行update時,因為isIncrease是false,radius還是執行-5操作,一直到小于150時,但是你把var isIncrease = true放在了update里面,這時radius為700 ,isIncrease為true,那么radius要執行+5操作,radius變為705,然后超過700,又執行-5...
2016-05-15
已采納回答 / lc9122
四個錯誤:第44行,getBoundingClientRect()拼寫錯誤,“bound”的b是大寫的detect和draw函數的for循環條件多了個“=”第48行beginPath拼寫錯誤第54行的括號后面有個多余的符號。這些錯誤在瀏覽器上調試調試就可以發現問題的。
2016-04-02