javascript - 關(guān)于canvas旋轉(zhuǎn)
問題描述
$('#bt-lottery').one('click',function(){ var reg=1; setInterval(function(){ctx.save();ctx.translate(249.5,249.5);//將原點(diǎn)移動(dòng)到畫布中心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);});
我想要實(shí)現(xiàn)指針(pin.png)在轉(zhuǎn)盤上(pan.png)旋轉(zhuǎn)的功能,但是如果ctx.clearRect();就會(huì)出現(xiàn)如圖的情況;我想要的結(jié)果是
,該怎么實(shí)現(xiàn)呢??求教
問題解答
回答1:因?yàn)樾畔⒉蛔悖抑荒芙o出我的判斷。
png不是透明的,這概率很小
你分成了兩個(gè)canvas,但帶指針的那個(gè)canvas有背景色,概率同樣很小
代碼問題:
setInterval(function(){ ctx.clearRect(0,0,canvas.width,canvas.height); //這里你需要繪制背景圖片(轉(zhuǎn)盤),或者將轉(zhuǎn)盤作為離屏canvas分離出去(因?yàn)檗D(zhuǎn)盤不會(huì)變動(dòng)),只繪制指針。 ---我猜你缺少了這一步。。 ctx.save(); ctx.translate(249.5,249.5);//將原點(diǎn)移動(dòng)到畫布中心 //ctx.clearRect(-pin.width/2,-pin.height/2,pin.width,pin.height);至于為什么清理出來的區(qū)域是個(gè)圓形跟你代碼執(zhí)行的順序有關(guān),先旋轉(zhuǎn)后清理和先清理后旋轉(zhuǎn)是不一樣的。 ctx.rotate(reg*Math.PI/180); ctx.drawImage(pin,-pin.width/2,-pin.height/2); ctx.restore(); reg++;},5);
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. PHP求助,求幫忙謝謝各位3. extra沒有加載出來4. mysql - php 如何網(wǎng)址中出現(xiàn)該頁(yè)標(biāo)題?5. javascript - 天貓首頁(yè)首屏數(shù)據(jù)來源6. javascript - 釘釘?shù)膃xcel, word文件預(yù)覽是直接用的微軟的office web app,不犯法嗎?7. 關(guān)于Mysql數(shù)據(jù)表行轉(zhuǎn)列8. django進(jìn)行數(shù)據(jù)庫(kù)的查詢9. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?10. mysql - 為什么where條件中or加索引不起作用?
