MAMI - Atividade 08


Enunciado da Atividade

Empregando as funções dist e map do Processing, explicar e exemplificar como a posição do mouse, numa janela com proporção 4:3, pode mover um círculo no interior de uma retângulo com proporção 16:9 centralizado na tela

Vamos começar entendendo o que cada uma dessas funções faz. A função dist serve para calcular a distância entre dois pontos, recebendo o X e Y de cada um. Já a função map é mais complexa, funciona quase como uma regra de três, nela você dá um valor, que está contido entre dois *parâmetros e você quer saber o valor (proporcional) que ele teria se estivesse contido entre esses outros dois *parâmetros

Por enquanto vamos começar construindo nosso código. Criamos uma tela 4:3 (800x600) e centralizado dentro dela um retângulo com proporções 16:9 (640x360)

               

A partir daí podemos começar a construir a nossa função centerBall, com base nos conceitos acima. Começamos criando duas variáveis para o X do retângulo central. Estas vão dizer em que ponto começa e termina o X do retângulo central. Para isso utilizamos a função dist começando do ponto zero até metade da largura menos metade da largura do retângulo (iniX) e depois do ponto zero até a metade da largura mais metade da largura do retângulo (finX)

               

A seguir criamos a variável xx, que vai conter o valor X da bola, e lhe agregamos valor utilizando o map. A partir do valor X do mouse, dentro dos parâmetros da largura da tela, queremos o valor proporcional no qual a bola pode se movimentar, dentro dos parâmetros do retângulo (adicionando e subtraindo o raio da bola, para que não vaze)

               

Agora, recriamos os passos acima, só que utilizando os valores de Y

               

Finalmente, podemos juntar os valores dentro de uma elipse, apenas adicionando os valores xx e yy criados e um diâmetro de 10

               

Assim, temos o resultado final

               

Comentários