1
resposta

Resolução "Desenha Flor"

Segue código com a resolução da atividade Desenha Flor. Parece estar funcionando!

<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*3.14);
        pincel.fill();
    }
;=
desenhaCirculo(300, 200, 20, "red");

desenhaCirculo(260, 200, 20, "orange");

desenhaCirculo(300, 160, 20, "yellow");

desenhaCirculo(340, 200, 20, "black");

desenhaCirculo(300, 240, 20, "blue");

</script>
1 resposta

Natalia, não funcionou só pq vc esqueceu um ";=" logo após:

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

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2*3.14);
        pincel.fill();
    }

Delete a linha e vai funcionar, esse tipo de erro é o mais difícil de achar. O código fica:

<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*3.14);
        pincel.fill();
    }

desenhaCirculo(300, 200, 20, "red");
desenhaCirculo(260, 200, 20, "orange");
desenhaCirculo(300, 160, 20, "yellow");
desenhaCirculo(340, 200, 20, "black");
desenhaCirculo(300, 240, 20, "blue");

</script>

Aproveitando, apenas como boas práticas, crie uma função (function desenhaFlor(), por exemplo) para desenhar a flor, assim toda a vez que vc precisar desenhar a flor no futuro não precisa escrever:

desenhaCirculo(300, 200, 20, "red");
desenhaCirculo(260, 200, 20, "orange");
desenhaCirculo(300, 160, 20, "yellow");
desenhaCirculo(340, 200, 20, "black");
desenhaCirculo(300, 240, 20, "blue");

Apenas chamar a função (por exemplo):

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*3.14);
        pincel.fill();
    }

    function desenhaFlor(x,y, raio)
    {    
    desenhaCirculo(x, y, raio, "red");
    desenhaCirculo(x +2*raio, y, raio, "black");
    desenhaCirculo(x -2*raio, y, raio, "orange");
    desenhaCirculo(x, y +2*raio, raio, "blue");
    desenhaCirculo(x, y -2*raio, raio, "yellow");
    }

    desenhaFlor(300,200, 50);

</script>

Ainda tem o ganho de conseguir mudar a posição da flor e tamanho das pétalas.