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

Flor via Function

Arquivo HTML

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flor</title>
</head>
<body>
    <canvas id="flor" width="600px" height="400px"></canvas>
    <script src="flor.js"></script>
</body>
</html>

Arquivo JS

let tela = document.querySelector("#flor");
let 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 criaFlor(x,y){
    desenhaCirculo(x,y,25,"red");
    desenhaCirculo(x-50,y,25,"orange");
    desenhaCirculo(x+50,y,25,"black");
    desenhaCirculo(x,y-50,25,"yellow");
    desenhaCirculo(x,y+50,25,"#21a303");
    desenhaCirculo(x-75,y-75,25,"pink");
    desenhaCirculo(x-75,y+75,25,"white");
    desenhaCirculo(x+75,y-75,25,"green");
    desenhaCirculo(x+75,y+75,25,"cyan");
    desenhaCirculo(x-130,y,50,"#4d13ba");
    desenhaCirculo(x,y-130,50,"#ad451c");
    desenhaCirculo(x+130,y,50,"#c9942a");
    desenhaCirculo(x,y+130,50,"#152099");    
    }

criaFlor(300,200);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Olá, Alysson! Como vai?

Sua solução ficou excelente, parabéns!

Qualquer dúvida estamos à disposição.

Continue praticando e bons estudos!

Até mais!

Olá Alysson! Tudo bem?

Me tira uma dúvida, por gentileza?

Você avançou no curso e depois retornou para fazer estas atividades com maestria, melhorando tua versão inicial da florzinha? Ou você já obtinha destes conhecimentos antes de inciar o código?

Achei teu código excelente! Mas tenho certeza que ainda não vi isso no curso haha!

Oi Cailane, tudo bom?

Então conforme fui fazendo o exercício, já fui recalculando outras posições kkkkk Pq se for olhar, tudo parte da bolinha central (que tem uma posição inicial x,y), então cada bolinha que vc faz para um lado, basta vc inverter para outro lado.

se sua bolinha inicial está em x 100, y 100

Vc quer colocar bolinha antes e depois, por exemplo no eixo X, vamos dizer que numa distancia de 50.
bolinha antes X - 50 => 100-50  e y 100 ====>  50,100
bolinha depois X +50 => 150 e y 100 ====>  150,100

Vc quer colocar bolinha antes e depois, por exemplo no eixo Y, vamos dizer que numa distancia de 50.
bolinha acima X = 100 e y-50 ==> 50 ==>  100,50
bolinha abaixo X =100 e y+50==> 150 ====>  100,150

É tipo espelhamento, eu foquei um lado e depois inverti a medida que mexi em tal eixo para gerar o outro lado.