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.