javascript - 關(guān)于canvas旋轉(zhuǎn)
問(wèn)題描述
$('#bt-lottery').one('click',function(){ var reg=1; setInterval(function(){ctx.save();ctx.translate(249.5,249.5);//將原點(diǎn)移動(dòng)到畫(huà)布中心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)盤(pán)上(pan.png)旋轉(zhuǎn)的功能,但是如果ctx.clearRect();就會(huì)出現(xiàn)如圖的情況;我想要的結(jié)果是
,該怎么實(shí)現(xiàn)呢??求教
問(wèn)題解答
回答1:因?yàn)樾畔⒉蛔悖抑荒芙o出我的判斷。
png不是透明的,這概率很小
你分成了兩個(gè)canvas,但帶指針的那個(gè)canvas有背景色,概率同樣很小
代碼問(wèn)題:
setInterval(function(){ ctx.clearRect(0,0,canvas.width,canvas.height); //這里你需要繪制背景圖片(轉(zhuǎn)盤(pán)),或者將轉(zhuǎn)盤(pán)作為離屏canvas分離出去(因?yàn)檗D(zhuǎn)盤(pán)不會(huì)變動(dòng)),只繪制指針。 ---我猜你缺少了這一步。。 ctx.save(); ctx.translate(249.5,249.5);//將原點(diǎn)移動(dòng)到畫(huà)布中心 //ctx.clearRect(-pin.width/2,-pin.height/2,pin.width,pin.height);至于為什么清理出來(lái)的區(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. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf2. mysql - 怎么生成這個(gè)sql表?3. mysql儲(chǔ)存json錯(cuò)誤4. php - 公眾號(hào)文章底部的小程序二維碼如何統(tǒng)計(jì)?5. mysql - 表名稱(chēng)前綴到底有啥用?6. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決7. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?9. mysql - 數(shù)據(jù)庫(kù)建字段,默認(rèn)值空和empty string有什么區(qū)別 11010. sql語(yǔ)句 - 如何在mysql中批量添加用戶(hù)?
