3
respostas

meu codigo ficou assim

Há algum problema em deixá-lo desta forma já que não criei a variável raio como o professor fez? Só chamei a função de desenhar o circulo dentro do if.

<canvas width="600" height="400"></canvas>

<script>
    var tela = document.querySelector("canvas")
   var pincel = tela.getContext("2d")
    pincel.fillStyle = "grey"
    pincel.fillRect(0,0,600,400);

    function desenhaCirculo(evento)
    {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        pincel.fillStyle = "blue"
        pincel.beginPath();
        pincel.arc (x,y,10,0,2 * 3.14);
        pincel.fill();
        console.log (x + ',' + y )

        if (evento.shiftKey == true )
        {
        pincel.fillStyle = "blue"
        pincel.beginPath();
        pincel.arc (x,y,30,0,2 * 3.14);
        pincel.fill();
        }

    }

    tela.onclick = desenhaCirculo;



</script>
3 respostas

Olá, Felipe! Não há problema algum na sua implementação, optando não criar uma variável raio. Porém, existe uma forma mais eficiente de implementar este código, limpando algumas linhas que estão repetidas e não precisavam ser declaradas duas vezes. Uma dica do que você poderia fazer:

<canvas width="600" height="400"></canvas>

<script>
    var tela = document.querySelector("canvas")
   var pincel = tela.getContext("2d")
    pincel.fillStyle = "grey"
    pincel.fillRect(0,0,600,400);

    function desenhaCirculo(evento)
    {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;
        pincel.fillStyle = "blue"
        pincel.beginPath();
        console.log (x + ',' + y )

        if (evento.shiftKey == true ) //Se tecla SHIFT foi apertada -> valor do raio = 30
        {
            pincel.arc (x,y,30,0,2 * 3.14);
        }
        else // Senão -> valor do raio = 10
        {
            pincel.arc (x,y,10,0,2 * 3.14);
        }

        //Desenha o círculo na tela
        pincel.fill();
    }

    tela.onclick = desenhaCirculo;

</script>

Fazendo dessa forma você poderá economizar algumas linhas redundantes, otimizando seu código. Um forte abraço e bons estudos para nós, meu amigo!

Obrigado d+ pela contribuição Sandro :)

Nn há de que! :)