recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - À propos de la rotation du canevas

$("#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);
        });

Je veux réaliser la fonction du pointeur (pin.png) tournant sur le plateau tournant (pan.png), mais si ctx.clearRect(); apparaîtra comme indiqué sur l'image, le résultat que je veux est  ; , comment y parvenir ? ? Demander conseil

女神的闺蜜爱上我女神的闺蜜爱上我2748 Il y a quelques jours818

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-06-28 09:30:14

    En raison d'informations insuffisantes, je ne peux que donner mon jugement.

    1. png n'est pas transparent, la probabilité est très faible

    2. Vous êtes divisé en deux toiles, mais la toile avec le pointeur a une couleur de fond, la probabilité est également très faible

    3. Problème de code :

    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);

    répondre
    0
  • Annulerrépondre