Atividades realizadas em casa durante o andamento da disciplina de MAMI.
Tarefa 8- Pong com keyPressed()
Nessa atividade, nos foi pedido que desenvolvêssemos uma versão mais completa do jogo Pong, isto é, com dois bastões que são movimentados pelas teclas "W" e "S" (bastão da esquerda) e "UP" e "DOWN" (bastão da direita). Além disso, nos foi proposto explicarmos a diferença entre o uso da variável de sistema keyPressed e a função keyPressed(). Pesquisei na referência do Processing para aprender sobre essa diferença e, acabei descobrindo que existe um mapa de valores para cada tecla do computador, onde, por meio desses valores, podemos informar ao sistema uma tecla específica para uma determinada ação no programa em desenvolvimento. Nisso descobri que os valores das teclas "W" e "S" são, respectivamente, 87 e 83. Porém, não encontrei na referência do Processing algo que me explicasse como utilizar esse mapa na função keyPressed(), sendo assim, não consegui implementar bem o bastão da esquerda da tela, tendo sucesso apenas no bastão da direita, que fizemos em sala com o método da variável de sistema keyPressed (para as teclas "UP" e "DOWN"). Tentei, então, com esse mesmo método, programar os comando "W" e "S" para, respectivamente, subir e descer o bastão da esquerda da tela, mas, infelizmente, o programa não interpretou isso com sucesso e a movimentação do bastão da esquerda está limitada (não ocorre sempre que se pressiona as teclas "W" ou "S"). Desconfio que isso seja porque não consegui utilizar a função keyPressed(). Assim, o código abaixo contém tudo que consegui realizar dessa atividade.
Download da atividade: Tarefa 8- Pong com keyPressed()- Incompleto
Tarefa 7- Aspectos Matemáticos e Programação na Criação de Marcas
Por trás da identidade visual (marca) de grandes empresas, há sempre um ou mais designers envolvidos em seu processo de criação. Trata-se de um processo que une criatividade/conhecimentos artísticos e conhecimentos de Geometria (matemática) e de Programação.
A criatividade e os conhecimentos artísticos do designer de uma identidade visual podem garantir originalidade a marca em desenvolvimento e firmar um bom conceito visual sobre tal e, principalmente, firmar um bom conceito a respeito da empresa ao tornar a "mensagem" da marca clara e única.
Os conhecimentos geométricos, por sua vez, garantem que a marca terá um padrão de replicação e exibição para que, independentemente de em que meio a marca será exibida, ela será visualizada e reconhecida da mesma forma que o designer elaborou originalmente e a empresa acordou como finalizada.
Já os conhecimentos de Programação permitem que a marca seja digitalmente reproduzida de acordo com os padrões geométricos conferidos pelo designer da marca, além de possibilitar que a marca seja responsiva, isto é, exibida de forma adaptada (mas não destrutiva, ou seja, sempre de acordo com o manual da marca) em diferentes meios de exibição.
A imagem a seguir ilustra um exemplo de conhecimentos geométricos explicitados no manual de uma marca internacionalmente conhecida.
Exemplo- Xbox Live (brand):
Tarefa 6- Bandeira do Brasil com rectMode e ellipseMode
Nessa atividade me faltou apenas conseguir configurar corretamente o losango amarelo da bandeira. Tentei bastante encaixá-lo no local certo, mas sem sucesso. O código a seguir possui o que consegui na última tentativa antes de postar a atividade. Quanto ao rectMode() e ellipseMode(), eles ajudam bastante para gerarmos o círculo e o retângulo usando como referência o centro da tela. Minha dificuldade com o losango está no fato de suas variáveis não serem de posicionamento geral dele na tela para que possa utilizar como referência o centro da tela. Sendo assim, não consegui encontrar os valores corretos para as variáveis do losango.
Download da atividade: Atividade 6- Bandeira do Brasil com rectMode e ellipseMode
Tarefa 5- MRUV informando ângulo de lançamento balístico
Infelizmente não consegui realizar esta atividade em tempo hábil.
Tarefa 4- Simulação de carro em MRU e tempo real (60fps)
Anteriormente a esta tarefa de casa, os professores nos pediram para fazermos a simulação de um carro deslocando-se horizontalmente na tela, em MRU, a uma taxa de quadros de 60 frames por segundo (60 fps). Em seguida, ou seja, como tarefa de casa, precisamos alterar o código para que, a 60fps ele simule a situação proposta em tempo real, ou seja, com um segundo sendo 1/60 de um minuto (ou 1 minuto sendo 60 * 1 segundo). Para alterar o código e fazê-lo funcionar conforme solicitado nessa questão, as alterações necessárias foram muito simples: mantendo "frameRate(60)" no setup do programa, alterei a variável "tAtual" (que recebe o valor do tempo a cada momento da simulação em andamento) para o tipo "float" e, ao invés de receber o valor inicial inteiro de "0", esta recebeu o valor de "0.0" (no programa digitei apenas "0.", que o Processing entender da mesma forma). Em seguida, declarei a variável "float aux_tempo = 0.016;", também como global e utilizei essa como a variável que, a cada "rodada" do programa (dentro do draw) é somada ao valor da variável "tAtual". Fazendo-se isto, mesmo que o código do programa seja executada 60 vezes em um segundo, o contador de tempo conta o passar de cada segundo da mesma forma que na vida real, ou seja, mantém-se 1 segundo = 1/60 de um minuto.
Download da atividade: Atividade 4- Simulador de Carro em MRU e Tempo Real (60fps)
Tarefa 3- Melhor aproveitamento de volume em um cubo
Infelizmente não consegui realizar essa atividade completamente. Disponibilizarei aqui o código com o que consegui pensar e realizar no dia que tentei fazer esta atividade em casa. Acredito que é possível resolver este problema se houver uma forma de deixar um valor fixo (exemplo, 15) na soma das 3 medidas que formam o cubo (profundidade, largura e altura) e fizermos algo semelhante a questão anterior (ver questão postada abaixo). Imagino que se deixarmos a medida da profundidade em um valor inteiro fixo (exemplo, 5) e fixarmos a profundidade, seja possível fazer, utilizando-se do comando "for", uma simulação visual e o cálculo do volume gerado pelos cubos formados com as possíveis medidas que o programa, ao ser rodado, colocaria em teste.
Download da atividade: Atividade 3- Melhor Aproveitamento de Volume- Cubo
Tarefa 2- Melhor aproveitamento de área
Nesta atividade, os professores pediram que mostrássemos matematicamente que o quadrado é o quadrilátero que possui melhor aproveitamento de área. Para isso, foi criado um programa que dá respostas no console quando executado, que mostra as possibilidades de área atingida por um quadrilátero quando o seu perímetro é sempre igual a 20, ou seja, com sua base e sua altura variando (nesse caso, sempre em valores inteiros) de 0 a 9.
Download da atividade: Atividade 2- Melhor Aproveitamento de Área- Quadriláteros
Tarefa 1- Modelos Naturais e Modelos Matemáticos
Nesta atividade, fomos estimulados a desenvolver nossa percepção de modelos matemáticos em acontecimentos do cotidiano. Para isto, criei um vídeo apresentando o modelo matemático e natural do experimento "Shredding a Photo" (clique aqui para conhecer o experimento).
Download da atividade: Atividade 1- Modelos Matemático e Natural- Triturador de Fotos

Nenhum comentário:
Postar um comentário