1
resposta

Evolução da Tarefa: cores e espessuras.

Me diverti muito com a atividade. Tanto que aumentei as opções de cores e possibilitei também variar a espessura do pincel. Ainda dá pra enxugar um pouco o código, mas agora vou pra próxima lição, rsrsrs

<meta charset="UTF-8">

<canvas width="600" height="400"></canvas>

<script>

    function desenhaQuadrado(x, y, tamanho, cor) {

        pincel.fillStyle = cor;
        pincel.fillRect(x, y, tamanho, tamanho)
        pincel.fill();
    }

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

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

    }

    function desenhaPaletaDeCores() {

        desenhaQuadrado(xVermelho, yQuadrados, tamanhoQuadrados, 'red');
        desenhaQuadrado(xLaranja, yQuadrados, tamanhoQuadrados, 'orange');
        desenhaQuadrado(xAmarelo, yQuadrados, tamanhoQuadrados, 'yellow');
        desenhaQuadrado(xVerde, yQuadrados, tamanhoQuadrados, 'green');
        desenhaQuadrado(xAzulClaro, yQuadrados, tamanhoQuadrados, 'lightblue');
        desenhaQuadrado(xAzul, yQuadrados, tamanhoQuadrados, 'blue');
        desenhaQuadrado(xPurple, yQuadrados, tamanhoQuadrados, 'purple');

    }

    function desenhaEspessuraPincel(){
        desenhaQuadrado(xPincel2, yQuadrados, tamanhoQuadrados, 'white')
        desenhaQuadrado(xPincel5, yQuadrados, tamanhoQuadrados, 'white')
        desenhaQuadrado(xPincel10, yQuadrados, tamanhoQuadrados, 'white')
        desenhaQuadrado(xPincel15, yQuadrados, tamanhoQuadrados, 'white')
        desenhaCirculo((xPincel2+25), (yQuadrados +25), 2, 'black');
        desenhaCirculo((xPincel5+25), (yQuadrados +25), 5, 'black');
        desenhaCirculo((xPincel10+25), (yQuadrados +25), 10, 'black');
        desenhaCirculo((xPincel15+25), (yQuadrados +25), 15, 'black');

}

    function lidaComMovimentoDoMouse(evento) {

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        if(desenha) {
            if(y > (tamanhoQuadrados + raio)) {
                desenhaCirculo(x, y, raio, corAtual);
            }
        }
    }

    function habilitaDesenhar() {

        desenha = true;
    }

    function desabilitaDesenhar() {

        desenha = false;
    }

    function defineCorEspessura(evento){

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

    if (y <= tamanhoQuadrados) {
        if (x <= xLaranja){
            corAtual = 'red';        
        }
        else if (x <= (xAmarelo)) {
            corAtual = 'orange';
        }
        else if (x <= (xVerde)) {
            corAtual = 'yellow';
        }
        else if (x <= (xAzulClaro)) {
            corAtual = 'green';
        }
        else if (x <= (xAzul)) {
            corAtual = 'lightblue';
        }
        else if (x <= (xPurple)) {
            corAtual = 'blue';
        }
        else if (x <= (xCinza)) {
            corAtual = 'purple';
        }
        else if (x <= xPincel2) {
            corAtual = 'lightgray';
        }
        else if (x <= xPincel5) {
            raio = 2;
        }
        else if (x <= xPincel10) {
            raio = 5;
        }
        else if (x <= xPincel15) {
            raio = 10;
        }
        else if (x <= (xPincel15 + tamanhoQuadrados)){
            raio = 15;
        }
    }
}

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);

    var desenha = false;
    var corAtual = 'blue';
    var xVermelho = 0;
    var xLaranja  = 50;
    var xAmarelo = 100;
    var xVerde = 150;
    var xAzulClaro = 200;
    var xAzul = 250;
    var xPurple = 300;
    var xCinza = 350
    var xPincel2 = 400;
    var xPincel5 = 450;
    var xPincel10 = 500;
    var xPincel15 = 550;
    var yQuadrados = 0;
    var tamanhoQuadrados = 50;
    var raio = 5;

    desenhaPaletaDeCores(); // mostra os quadrados de seleção de cores
    desenhaEspessuraPincel ();

    tela.onclick = defineCorEspessura;

    tela.onmousemove = lidaComMovimentoDoMouse;

    tela.onmousedown = habilitaDesenhar;

    tela.onmouseup = desabilitaDesenhar;

</script>
1 resposta

Olá, tudo bem?

Uauu!!! Gostei muito da customização que você fez no programa, ficou muito legal! Parabéns! Essa possibilidade de irmos além do que foi proposto na atividade, nos ajuda a progredir na programação mais facilmente.

Caso surja dúvidas, não hesite em compartilhar no fórum.

Grande abraço e até mais!