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

Encontrando as coordenadas!

Olá! Nunca fui bom em matemática e esse exercício me deu um pouco de dor de cabeça.

Inclusive, precisei desenhar numa folha de papel (com régua) as medidas para visualizar e encontrar as coordenadas X e Y iniciais de cada retângulo.

Eu não entendi uma coisa só: Por que o desenho do professor começa em 200,50 e não em 0,0? Pra centralizar?

Como tive dificuldades, alguém se disponibilizaria a explicar como encontrar as coordenadas iniciais de cada retângulo?

A opinião do professor começou em um ponto diferente do canvas, por isso tive dificuldades. Sei que a dúvida é mais sobre matemática do que programação, mas se alguém puder ajudar fico muito grato! Vai ajudar muito pras minhas próximas atividades!

Depois de desenhar com régua numa folha sulfite, consegui encontrar as seguintes medidas, gostaria de verificar se estão corretas:

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

<script>

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

pincel.fillStyle = "darkgreen";
pincel.fillRect(0,0,350,300);

pincel.fillStyle = "black";

//1 olho
pincel.fillRect(50, 60, 90, 90);

//2 olho
pincel.fillRect(210, 60, 90, 90);

//nariz
pincel.fillRect(140, 150, 70, 100);

//1 boca
pincel.fillRect(100, 190, 40, 110);

//2 boca
pincel.fillRect(210, 190, 40, 110);


</script>

Grato desde já por toda a atenção!

4 respostas
solução!

Olá Lucas, é isso mesmo. Você não necessariamente precisa definir a origem do seu desenho no ponto (0,0). No exemplo, o professor optou pelo ponto (200,50).

Sua solução, partindo do ponto (0,0) está correta. Para facilitar, e não precisar sempre desenhar em uma folha (o que também é muito útil e válido para o aprendizado), você pode calcular a partir da origem.

Imagine, por exemplo, que ao invés de (0,0) ou (200, 50) começamos pelo ponto (100, 100). Como ficaria a solução? Basta calcularmos através desta origem. Veja que o primeiro olho deve distanciar da origem a uma largura 50 e uma altura 60 (isso é dado pelo exercício!). Como nosso ponto inicial agora é (100, 100) devemos somar 50 na largura o que resulta 150 (100 +50) e 60 na altura o que resulta em 160(100+60), e no fim ficaria: pincel.fillRect(150,160, 90, 90). Já para o segundo olho devemos somar 210 na largura que resulta 310 (210+100) e 60 na altura o que resulta em 160 (100+60) e teremos como solução: pincel.fillRect(310,160, 90, 90).

Ficou mais claro?

Oi Thais, desculpa a demora em responder! Entao, o problema é justamente que o exercício nao deu as distancias do primeiro olho (50,60, como voce disse). Foi isso que me deixou bastante confuso.

Oi Lucas, você tem razão, eu me confundi. Desculpe.

Veja que o exercício dá os tamanhos dos retângulos. Como a cabeça deve ter uma largura de 350 e os olhos e o nariz ocupam 90 e 70 de largura cada, temos que a largura destes combinados será de: 90 (olho1) + 70 (nariz) + 90 (olho2) = 250. Fazendo 350 - 250 vemos que sobra 100 de largura. Pensando em deixar um espaçamento simétrico de cada lado, dividimos 100 por 2 que resulta em 50 de largura sobrando de cada lado do rosto. Daí encontramos o primeiro valor de 50. Portanto, o primeiro olho deve ter x=50 na sua origem.

Já a altura, temos que contar os olhos, o nariz e a parte lateral da boca. Mas veja que não basta somarmos as alturas e calcular o restante - já que parte do nariz e parte lateral da boca são adjacentes. Assim, para fazer o cálculo, você deve escolher o quanto você deseja que a parte superior do nariz não fique adjacente a parte da boca (ou seja, o quanto você deseja deixar de espaçamento entre um olho e a parte lateral da boca). Repare que, no desenho original, a distância da parte adjacente entre parte da boca e o nariz (ou seja, quando estes se tocam) é um pouco maior do que a distância entre parte da boca (retângulo 5 ou 6) e o olho (retângulo 2 ou 3). Como o nariz deve ter altura 100, o professor optou por “dividir” o retângulo 4 entre 40 (espaçamento ente olho e parte da boca) e 60 (parte em que o nariz é adjacente a parte da boca) - daí da distância entre o olho e parte da boca ser 40. Sendo assim, temos que 110 (altura da parte da boca - retângulo 5 ou 6) + 40 (altura entre parte da boca e olho) + 90 (altura do olho - retângulo 2 ou 3) = 240. Como a altura total é 300, subtraímos 240 deste valor que dá exatamente 60.

De qualquer forma, este dado (50,60) é dado, mas de maneira implícita. Acredito que a parte da explicação da altura ainda está um pouco confusa, me pergunte novamente caso não esteja claro. Isso acontece já que vai do desenho e não do cálculo exato em si. Você poderia optar por deixar um espaçamento diferente (entre parte da boca e olho) se achar que o desenho fica melhor e recalcular as origens dos demais retângulos a partir daí - mas sempre tomando cuidado para não extrapolar a área de 350x300 e manter os tamanhos estabelecidos pelo exercício.

Espero que tenha ajudado.

Era exatamente essa a minha dúvida! Acho que essa atividade acabou sendo mais difícil do que deveria hahaha Pra resolver eu precisei de uma folha de papel, desenhar as medidas e tudo mais... encontrei o resultado! Eu assumi que o eixo y do início do nariz seria o meio do desenho, daí pude fazer restante.

A dúvida foi bem resolvida! Obrigado de verdade Thais! E desculpe a demora!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software