Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Fórmula de geometria analítica?

<!-- esquadro.html -->

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

<script>

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

    function desenhaEsquadro(xa, ya, xc, yc, cor) {
        pincel.fillStyle = cor
        pincel.beginPath();
        pincel.moveTo(xa, ya);
        pincel.lineTo(xa, yc);
        pincel.lineTo(xc, yc);
        pincel.fill();

        pincel.fillStyle = 'white'
        pincel.beginPath();
        pincel.moveTo((6*xa + xc)/7, (9*ya + 5*yc)/14);
        pincel.lineTo((6*xa + xc)/7, (ya + 6*yc)/7);
        pincel.lineTo((5*xa + 9*xc)/14, (ya + 6*yc)/7);
        pincel.fill();

}

    desenhaEsquadro(50, 50, 400, 400, 'black');

</script>

Boa tarde a todos,

Fiquei em dúvida na resolução do exercício da atividade 08 (esquadro#2) do curso de lógica de programação 02. De onde veio a fórmula para o cálculo das posições x e y dos pontos do triângulo retângulo menor? Trata-se de geometria analítica? Que fórmula seria (faz bastante tempo que estudei geometria analítica..rsrs)? Desde já agradeço.

1 resposta

André, boa tarde!

Essa fórmula não entra no campo da geometria analítica, mas ela é sobre Média Ponderada, onde nós conseguimos atribuir um peso pra cada valor da média e definir um ponto na reta.

Pensemos na reta de baixo do nosso triângulo, onde dois pontos são ligados por uma linha, uma das extremidades vamos chamar de extremidadeA e a outra de extremidadeB de uma reta x. A média ponderada vai ajustar o ponto na reta baseado no peso de cada uma das extremidades.

let extremidadeA = 100; //equivale ao inicio da reta X
let extremidadeB = 500; //equivale ao fim da reta X
let pesoExtremidadeA = 10;
let pesoExtremidadeB = 0;
let media = (pesoExtremidadeA * extremidadeA + pesoExtremidadeB * extremidadeB)/ (pesoExtremidadeA + pesoExtremidadeB); // Retorno será 10

O valor da média está amarrado ao peso de cada extremidade. A divisão da média não é baseada na quantidade de elementos, mas sim na soma dos pesos. Nessa reta x o peso está todo pendendo para a extremidadeA e para a extremidadeB o valor é zero. Então a média penderia toda para a extremidade de maior peso, que neste caso é a extremidadeA.

Agora veja esse outro exemplo:

let extremidadeA = 100; //equivale ao inicio da reta X
let extremidadeB = 500; //equivale ao fim da reta X
let pesoExtremidadeA = 6;
let pesoExtremidadeB = 1;
let media = (pesoExtremidadeA * extremidadeA + pesoExtremidadeB * extremidadeB)/ pesoExtremidadeA + pesoExtremidadeB; // Retorno será 

Veja o cálculo que o instrutor usou para definir as coordenadas de um dos pontos

pincel.moveTo((6*xa + xc)/7, (9*ya + 5*yc)/14);

O valor 6 é equivalente ao nosso pesoExtremidadeA, ao lado do xa por não ter um valor explicito, o valor padrão é 1, ficando assim:

pincel.moveTo((6*xa + 1xc)/7, (9*ya + 5*yc)/14);

Por último o 7 vem da soma do 6(pesoExtremidadeA) e o 1(pesoExtremidadeB), o mesmo ocorre no eixo y com 9 e 5 a soma é igual a 14

Veja que, esse é o ponto x do triângulo menor, o mesmo serve para fazer o eixo Y

O que a média ponderada faz nesta reta x é dividir a reta em partes iguais e esse total de partes é equivalente à soma dos pesos, depois, o ponto médio irá pender para o lado de maior peso. O segundo triângulo aplica peso 6 para a extremidadeA e peso 1 extremidadeB, fazendo com que o triângulo se inicie com um espaço de 1/7 depois do início. O mesmo se aplica para os outros pontos, tanto do eixo x, quanto do eixo y.

Teste você mesmo!

Feito com: Fabiano Teodoro

Espero ter ajudado e bons estudos!