Olá Heloisa tudo bem ?
Acabei de testar seu código aqui e tem uma pequena observação na linha 20 :
desenhaCirculo(300, 2,20 10, 'blue');
Observe que foi inserido uma vírgula entre o 2,20 quando na verdade essa vírgula deveria estar entre o 220,10 e esse pequeno detalhe causa erros de compilação :
desenhaCirculo(300, 220 ,10, 'blue');
Tirando esse detalhe o modo que você fez seu código ficou muito legal e trouxe o resultado esperado parabéns. =)
Outra maneira seria de fazer ele seria :
<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+20, 10, 'blue');
desenhaCirculo(x, y, 10, 'red');
desenhaCirculo(x, y-20, 10, 'yellow');
desenhaCirculo(x-20, y, 10, 'orange');
desenhaCirculo(x+20, y, 10, 'black');
}
desenhaFlor(300, 200);
</script>
Nesse caso apenas criamos uma nova função chamada desenhaFlor que podemos indicar a posição x e y de onde o centro da flor será desenhado e dentro da função ajustar esse valor somando/subtraindo 20 pixels , após feito isso é só passar os valores do posicionamento dentro da função desenhaFlor quando for invoca-la.
Espero ter ajudado , continue assim praticando que você vai evoluir muito . =)
Abraços e bons estudos!!