Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Raio aumenta apenas 1 vez e já começa grande.

Estou tentando usar estrutura de repetição e condição para aumentar o raio aos poucos como proposto, mas ele já começa com o raio no valor máximo que estou tentando impor. Que mudança devo fazer nesse código para funcionar?

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

    var cores = ['blue','red','green']
    var corAtual = 0;

    function desenhaCirculo(evento) {  
        var raio = 10;
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        if (evento.shiftKey == true) {
for (var somaRaio = 0; somaRaio <= 200; somaRaio = somaRaio + 10) {
     raio = raio + somaRaio 
        pincel.fillStyle = cores[corAtual];
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14);
        pincel.fill();
        console.log(x + ',' + y);
   }  
    } else {  

        pincel.fillStyle = cores[corAtual];
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14);
        pincel.fill();
        console.log(x + ',' + y);
    }
 }
    tela.onclick = desenhaCirculo;

    function mudaCor() {
        corAtual++
       while (corAtual >= cores.length) {
           corAtual = 0;
       }

      return false;
    }

    tela.oncontextmenu = mudaCor;


</script>
3 respostas

Oi Matheus

O código não apareceu

Opa, agora foi!

solução!

Oi Matheus

O for está executando as 201 vezes e com isso pegando a ultima soma do raio assim ele vai realmente ficar no máximo.

Uma ajuda pode ser fazer uma ou mais perguntas como:

  • Como aumentar progressivamente a cada click do mouse segurando o shift?
    • coloquei em negrito porque essa parte tem muita importância na hora de criar a lógica

A dica é começar a codificar simples, repetindo código mesmo e depois refatorar o código.

Outra dica pra você não perder muito tempo quebrando a cabeça a var raio é uma variável de controle e precisa ficar fora da função desenhaCirculo