Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usando While/For

Pessoal, eu estava fazendo o exercicio das flores e gostaria de preencher uma linha completa com flores. Tentei usando o codigo While/For e nada acontece, nem um erro. O que esta faltando no meu codigo?

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

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);

    function desenhaCirculo(x, y, raio, cor) {

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }
function desenhaFlor(x, y) {
    desenhaCirculo(x, y, 10,"red");
    desenhaCirculo(x+20, y, 10,"black");
    desenhaCirculo(x-20, y, 10,"orange");
    desenhaCirculo(x, y+20, 10,"blue");
    desenhaCirculo(x, y-20, 10,"yellow");
}

    for (var x = 0; x < 600; x = x + 60){
        desenhaFlor(0, 30);
    }
</script>
1 resposta
solução!

Olá, seu for faz a contagem e a cada iteração ele repete a função desenhaFlor() com os mesmos parâmetros, ou seja, seu x e y é sempre o mesmo, pois você definiu 0, 30.

Você deve colocar o x no lugar do zero, desta maneira o primeiro argumento que você está passando sempre mudaria, já que o x está sendo incrementado pelo for.

Mude o for para:

    for (var x = 0; x < 600; x = x + 60){
        desenhaFlor(x, 30);
    }

Dica: para escrever menos você pode utilizar x+= 60 isto significa: "x recebe ele mesmo mais 60".

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software