3
respostas

DesenhaCirculo

Como poderia tratar o desenho circulo no formato em " V ", no programa abaixo, consegui tratar lado a lado, mas quero formar o desenho no formato V, dentro do For ?

3 respostas

Bom dia Flavio, Não veio seu código na sua postagem. Poderia nos mandar para verificarmos?

<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();
    }
// Utilize como ponto de referência para o centro da flor (círculo vermelho) as coordenadas 300 (x) e 200 (y).
 //   desenhaCirculo(300, 220, 10, 'blue');
 //   desenhaCirculo(300, 200, 10, 'red');
 //   desenhaCirculo(300, 180, 10, 'yellow');

 //   desenhaCirculo(280, 200, 10, 'orange');
 //   desenhaCirculo(320, 200, 10, 'black');

 // Nosso código melhorou, mas pode ficar ainda melhor. Se quisermos agora desenhar a flor mais para a direita? Veja que teremos que mudar os valores passados em desenhaCirculo em vários lugares. Contudo, perceba que o circulo vermelho é o centro da nossa flor e ele está posicionado em 300 (x), 200 (y). Veja que os demais círculos se posicionam 20 pixels do círculo vermelho, tanto acima/abaixo ou direita/esquerda, a distância é sempre a mesma. Sendo assim, podemos indicar a posição x e y de onde o centro da flor será plotado/desenhado e dentro da função ajustar esse valor somando/subtraindo 20 pixels:

//

 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');
    }



    y1 = 50;
    for(var x1 = 40; x1 < 300; x1 = x1 + 40) {
        desenhaFlor(x1, y1);
        y1 = y1 + 50;
    }

    y2 = 50;
    for(var x2 = 240; x2 < 500; x2 = x2 + 40) {
        desenhaFlor(x2, y2);
        y2 = y2 + 50;
    }


</script>

Oi Flavio. Vi o seu código. Só não consegui entender o que você quis dizer com "tratar o desenho circulo no formato em " V ".

O seu código ficou assim: https://prnt.sc/skcu6l

Por acaso em formato V, vc diz por exemplo pegar essa barra de flores da esquerda e inverter horizontalmente? Tipo assim: https://prnt.sc/skcvs7