4
respostas

Minha resolução é diferente da do instrutor porem ela funciona na minha visão ou estou errado?

function desenhaEsquadro(xa, ya, xc, yc, cor, cor2){

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle =cor;
    pincel.beginPath();
    pincel.moveTo(xa , ya);
    pincel.lineTo(xa , yc);
    pincel.lineTo(xc, yc);
    pincel.fill()

    xa = xa + 50;
    ya = ya + 125;
    xc = xc - 125;
    yc = yc - 50;

    pincel.fillStyle =cor2;
    pincel.beginPath();
    pincel.moveTo(xa , ya);
    pincel.lineTo(xa , yc);
    pincel.lineTo(xc, yc);
    pincel.fill()

}

desenhaEsquadro(100, 100, 300, 300, 'black', 'white');
desenhaEsquadro(300,300,650,650,'yellow', 'blue');

4 respostas

Achei ate melhor

Está bem melhor do que a do professor, até pq de onde ele tirou todas aquelas contas de * e de / pois ele não explica de onde veem essas contas e qual a lógica delas.

Não mesmo! eu até fiz com a mesma lógica que a sua. porém ao ver a resolução do instrutor, percebi que eu estava errado!

quer ver? tente usar sua função para desenhar esse esquadro: desenhaEsquadro(100, 100, 200, 200, 'blue', 'yellow');

e verá o quão bugado fica kkkk

Apesar de ter várias operações matemática, aquela lógica funcionará pra desenhar um esquadro genérico em qualquer coordenada, pois aquelas operações servem para seguir as proporções necessárias para a construção de um esquadro, de qualquer tamanho. Por isso é necessário ter as operações de multiplicação e divisão (pra seguir a proporção do esquadro).

operações simples como soma e subtração, deixará seu esquadro bugado a depender das coordenadas... tipo, ja pensou botar no xc um valor menor que 125? ou um valor para o yc menor que 50? o resultado seria negativo! e não daria certo... com operações de multiplicação e divisão isso não acontece de jeito nenhum.

Vou testar Gustavo