2
respostas

Ficou Interessante ... Quase um Paint kkkk

Galera,

Fiz sem olhar a resolução do professor e gostei muito do resultado.

Revisei várias coisas que aprendi nos cursos de lógica I e II.

Agradeço a interação no fórum.

Sucesso a todos!

<canvas width="805" height="605"> </canvas>

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    pincel.fillStyle = "lightgrey";
    pincel.fillRect (0, 0, 70, 600);


function desenhaRetangulo (x, y, larg, alt, cor) {

    pincel.fillStyle = cor;
    pincel.fillRect (x, y, larg, alt);
    pincel.fillStyle = "black";
    pincel.strokeRect (x, y, larg, alt);
}

function desenhaEspessuraLinha(x, y, larg, alt, cor) {

    pincel.fillStyle = cor;
    pincel.fillRect (x, y, larg, alt);
}

function escreveTexto (texto, x, y, fonte, cor) {

    pincel.fillStyle = cor;
    pincel.fillFont = fonte;
    pincel.fillText (texto, x, y);
}

function limparTela () {
    pincel.clearRect(71, 5, 729, 595);
}

function desenhaCirculo (evento) {

    if (desenhar){
        var x = evento.pageX - tela.offsetLeft;

        var y = evento.pageY - tela.offsetTop;

        if (x >= 0 && x <=79 || x >= 791 && x <= 805 || y >= 0 && y <= 14 || y >= 591 && y <= 605){
            desabilitaDesenhar();
        } else {
            pincel.fillStyle = corCirculo;
            pincel.beginPath();
            pincel.arc (x, y, raio, 0, 2*3.14);
            pincel.fill();
        }    
    }
}


function mudarFuncao (evento) {

    var xfuncao = evento.pageX - tela.offsetLeft;
    var yfuncao = evento.pageY - tela.offsetTop;

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 10 && yfuncao <= 60){ //(10, 10, 50, 50, "red"); // botão vermelho

        corCirculo = "red";
    }

    if(xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 70 && yfuncao <= 120){ // 10, 70, 50, 50, "blue"); // botão azul

        corCirculo = "blue";
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 130 && yfuncao <= 180){ // (10, 130, 50, 50, "green"); // botão verde

        corCirculo = "green";
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 190 && yfuncao <= 240){ // (10, 190, 50, 50, "black"); // botão preto

        corCirculo = "black";
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 250 && yfuncao <= 300){ // (10, 250, 50, 50, "yellow"); // botão amarelo

        corCirculo = "yellow";
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 550 && yfuncao <= 580){ // (10, 550, 50, 30, "white"); // botão apagar tela

        limparTela ();
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 353 && yfuncao <= 558){ // (10, 353, 50, 5, corCirculo); // tamanho linha 5 (raio = 3)

        raio = 3;
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 369 && yfuncao <= 379){ // (10, 369, 50, 10, corCirculo); // tamanho linha 10 (raio = 5)

        raio = 5;
    }

    if (xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 390 && yfuncao <= 405){ // (10, 390, 50, 15, corCirculo); // tamanho linha 15 (normal raio = 10)
        raio = 10;
    }

    desenhaEspessuraLinha (10, 353, 50, 5, corCirculo); // tamanho linha 5 (raio = 3)

    desenhaEspessuraLinha (10, 369, 50, 10, corCirculo); // tamanho linha 10 (raio = 5)

    desenhaEspessuraLinha (10, 390, 50, 15, corCirculo); // tamanho linha 15 (normal raio = 10)
}


function habilitaDesenhar () {

    desenhar = true;
}

function desabilitaDesenhar () {

    desenhar = false;
}

var corCirculo = "black";
var raio = 10;
var desenhar = false;

desenhaRetangulo (10, 10, 50, 50, "red"); // botão vermelho

desenhaRetangulo (10, 70, 50, 50, "blue"); // botão azul

desenhaRetangulo (10, 130, 50, 50, "green"); // botão verde

desenhaRetangulo (10, 190, 50, 50, "black"); // botão preto

desenhaRetangulo (10, 250, 50, 50, "yellow"); // botão amarelo

desenhaRetangulo (10, 550, 50, 30, "white"); // botão amarelo //(xfuncao >= 10 && xfuncao <= 60 && yfuncao >= 550 && yfuncao <= 580){


desenhaEspessuraLinha (800, 0, 5, 605, "black"); // borda lateral direita

desenhaEspessuraLinha (0, 600, 805, 5, "black"); // borda de baixo

desenhaEspessuraLinha (0, 0, 805, 5, "black"); // borda de cima


desenhaEspessuraLinha (10, 353, 50, 5, corCirculo); // tamanho linha 5 (raio = 3)

desenhaEspessuraLinha (10, 369, 50, 10, corCirculo); // tamanho linha 10 (raio = 5)

desenhaEspessuraLinha (10, 390, 50, 15, corCirculo); // tamanho linha 15 (normal raio = 10)



escreveTexto ("Espessura", 11, 330, "15px Georgia", "black");
escreveTexto ("da Linha", 14, 342, "15px Georgia", "black");


escreveTexto ("Limpar", 18, 563, "15px Georgia", "black");
escreveTexto ("Tela", 23, 573, "15px Georgia", "black");

tela.onclick = mudarFuncao;

tela.onmousemove = desenhaCirculo;

tela.onmousedown = habilitaDesenhar;

tela.onmouseup = desabilitaDesenhar;

</script>
2 respostas

Show de bola Diógenes!! Gostei muito da sua versão também!!!

Fala Matheus,

Mas uma "graça". Tentar ir um pouco além e aproveitar o momento para praticar algo das aulas anteriores.

Abraço.

Sucesso na sua jornada!!