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

Resolução comentada do exercício - Esquadro #2

Olá pessoal!

Percebi que muitos postaram soluções para o exercício proposto na aula "Esquadro #2" que não funcionam quando alteramos os valores inputados. A resolução da Alura não é comentada e resolvi o problema de outra forma que também funciona. Mas escrevi alguns comentários para ajudar aqueles que estão com dificuldade a entender a solução. Segue:

<meta charset="UTF-8">

<h2>Construindo esquadros</h2>

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

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

function desenhaEsquadro (xa, ya, xc, yc, cor) { //função definida no exercício.

    //Desenhando o triângulo preto.
    pincel.fillStyle= cor;
    pincel.beginPath();
    var xb = xa; //declarando as variáveis para facilitar o entendimento dos cálculos.
    var yb = yc;
    pincel.moveTo(xa,ya);
    pincel.lineTo(xb,yb);
    pincel.lineTo(xc,yc);
    pincel.fill();

    //Desenhando o triângulo branco. Este deve ser proporcional às dimensões do triângulo preto.
    pincel.fillStyle= "white"
    pincel.beginPath();

    //De acordo com o esquadro dado no exercício, onde os triângulos têm as seguintes dimensões:
    //Preto: (A=50,50; B=50,400; C=400,400)
    //Branco: (A'=100,175; B'=100,350; C'=275,350)
    //Calculei a proporção entre os triângulos (50%) e a distribuição do triângulo branco dentro do preto.
    //Isto é: 36% de distância entre A e A' e 14% de distância entre B e B'. Os outros 50% são preenchidos pelo triângulo branco.
    //Assim:
    var xap=xa+((xc-xb)*0.14); 
    var yap=ya+(yb-ya)*0.36;
    var xbp=xap
    var ybp=yap+(yb-ya)*0.5;
    var xcp=xap+(xc-xb)*0.5;
    var ycp=ybp

    pincel.moveTo(xap,yap);
    pincel.lineTo(xbp,ybp);
    pincel.lineTo(xcp,ycp);
    pincel.fill();

}

function addTexto (texto, x, y) {

pincel.font="20px Georgia";
pincel.fillStyle="black";
pincel.fillText(texto, x, y);
}

desenhaEsquadro (50, 50, 300, 300, "green");

</Script>

Espero que tenham gostado e estou aberto a conversar sobre o exercício!

Abraços e bons estudos!!!

4 respostas
solução!

Resolvido

Demais! Parabéns guerreiro.

Obg por compartilhar Breno!!

Nossa. Hoje fui ler e vi que tá meio confuso. Eu comparei as proporções dos tamanhos dos triangulos em relação ao eixo X e eixo Y apenas. Como precisamos "mover o pincel" só em duas retas para formar o triangulo, eu ignorei a hipotenusa.

Fiz XC-XA para descobrir o tamanho do cateto do eixo X do triangulo grande e XC'-XA' para descobrir o cateto X do pequeno.

Descobri que a proporção é de 50% nos dois eixos, ou seja, o triangulo grande tem o dobro do tamanho do pequeno nos catetos. Depois avaliei a posição do triangulo pequeno em relação ao grande. Para isso: XA'-XA e XC-XC'. Onde XA' = ponto do triangulo pequeno no eixo x; XA = ponto do triangulo grande no eixo x; O mesmo para C e C'.

Foi daí que saíram os valores de 14% e 36% que eu somei ao X e Y do triangulo grande para posicionar o pequeno.

Se alguém não entender ainda assim, me avise por favor!

Bons estudos!