javascript - 關于canvas旋轉
問題描述
$('#bt-lottery').one('click',function(){ var reg=1; setInterval(function(){ctx.save();ctx.translate(249.5,249.5);//將原點移動到畫布中心ctx.rotate(reg*Math.PI/180);ctx.clearRect(-pin.width/2,-pin.height/2,pin.width,pin.height);ctx.drawImage(pin,-pin.width/2,-pin.height/2);ctx.restore();reg++; },5);});
我想要實現指針(pin.png)在轉盤上(pan.png)旋轉的功能,但是如果ctx.clearRect();就會出現如圖的情況;我想要的結果是
,該怎么實現呢??求教
問題解答
回答1:因為信息不足,我只能給出我的判斷。
png不是透明的,這概率很小
你分成了兩個canvas,但帶指針的那個canvas有背景色,概率同樣很小
代碼問題:
setInterval(function(){ ctx.clearRect(0,0,canvas.width,canvas.height); //這里你需要繪制背景圖片(轉盤),或者將轉盤作為離屏canvas分離出去(因為轉盤不會變動),只繪制指針。 ---我猜你缺少了這一步。。 ctx.save(); ctx.translate(249.5,249.5);//將原點移動到畫布中心 //ctx.clearRect(-pin.width/2,-pin.height/2,pin.width,pin.height);至于為什么清理出來的區域是個圓形跟你代碼執行的順序有關,先旋轉后清理和先清理后旋轉是不一樣的。 ctx.rotate(reg*Math.PI/180); ctx.drawImage(pin,-pin.width/2,-pin.height/2); ctx.restore(); reg++;},5);
相關文章:
1. 數組按鍵值封裝!2. java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?3. docker不顯示端口映射呢?4. javascript - webpack中alias配置中的“@”是什么意思?5. javascript - 使用vue官方腳手架進行單元測試,如何覆蓋到watch里的變量?6. javascript - 為什么創建多行多列的表格最后只有一行內有表格7. clone - git sourceTree克隆倉庫時,都不停彈出Password Required彈窗,即時輸入正確的git賬號密碼還是彈出8. 如何用Java向kafka發送json數據9. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網頁就是切換到的主題了10. html5 - 使用echarts中的圖表 一個頁面導入了好幾個js圖表 實現echarts圖表隨著瀏覽器窗口變化而變化時出現了問題
