segunda-feira, 5 de março de 2018

Mami - Aula #1


Bom dia boa tarde boa noite!

Eu sou o Joel, um aluno de Sistemas e Mídias Digitais da UFC, e estou aqui para postar uma série de trabalhos necessários para conquistar a aprovação na cadeira de MAMI(Matemática Aplicada à Multimídia I) e dar orgulho à minha família.

Hoje eu irei realizar o primeiro trabalho, o primeiro passo é assistir o documentário "Hello World! Processing", que vou deixar logo a seguir:

 


O próximo passo é escolher exemplos do site: https://processing.org/examples/

A ideia é alterar o exemplo escolhido a partir das ideias apresentadas no vídeo e fazer alguns comentários, então vou escolher um bem simples sobre variáveis: https://processing.org/examples/variables.html

As variáveis são fundamentais em boa parte dos programas, elas são usadas para guardar determinados tipos de valores: int, float, boolean, dentre outros...

No documentário fala bastante sobre usar o processing para criar padrões através de modelos matemáticos, então eu resolvi alterar o programa do exemplo para fazer um modelo onde os traços fazem zigue-zague.




A ideia foi criar um laço duplo de for onde o primeiro indicaria um determinado ponto no eixo x e o segundo um determinado ponto no eixo y.

Para quem não sabe, o for uma estrutura de laço de repetição composta por 3 partes separadas por ";" :

for(int x=0; x < width; x=x+a)

A primeira parte [ int x=0 ]  é uma variável que vai inicializar o laço, nesse caso eu criei uma variável local, e por ser local, ela só existe enquanto o laço está acontecendo;

A segunda parte [ x < width ] é uma condição que vai ser checada antes do for acontecer, se ela for verdadeira, os comandos dentro do for são executados, se for falsa, o laço é finalizado e o programa segue adiante;

A terceira [ x=x+a ] é um incremento à variável, ele acontece logo após os comandos dentro do for serem executados.

Detalhe: a variável width do próprio processing guarda o valor da largura da janela do programa que está sendo codificado, a variável height guarda a altura, lembre-se delas porque vão ser bem úteis.

O que o primeiro for faz é basicamente checar se a posição x ainda está dentro da tela para então executar o segundo for e fazer o implemento de a, que foi a variável que eu usei para guardar a quantidade de deslocamento que eu quero fazer na horizontal; o segundo for desenha as linhas e então faz o implemento de b, que é a variável usada para o implemento na vertical;

O if é usado para checar se o resto da divisão de x / (2*a) /* sim, o % é usado no lugar do / quando se quer encontrar o resto em vez do resultado da divisão, e isso é bastante útil */ é igual a 0, quando é 0, é porque eu estou em um ponto onde a minha linha vai ser descendente /* \ */ , quando o resultado é a, ou simplesmente quando o resultado não é 0, é porque a linha tem que ser ascendente /* / */, como o resultado sempre vai variar entre 0 e a, eu posso usar essa fórmula para simular essa alternância e definir uma condição para desenhar a linha que eu quero desenhar.

 Os resultados são estes:



a=50 e b=100 :




a=10 e b=10 :





a=200 e b=300 :



Mesmo mudando os valores, as linhas continuam sendo desenhadas, e diferentes valores para as variáveis alteram o resultado final do programa.

Bem, por enquanto é isso, torçam por mim e até a próxima!


Download do arquivo do processing aqui!

Nenhum comentário:

Postar um comentário