sábado, 21 de novembro de 2015

Bandeira do Brasil

Função mostraBandeiraBrasil(x,y,l), que desenha uma bandeira do Brasil na tela de altura l, na posição (x,y).
                Segundo a lei federal N° 5.700, art. 5°:

Fonte: Wikipédia
Porém, a construção de nossa bandeira será feita somente até o passo IV (círculo no centro).
Segue abaixo o código comentado:
 Funções auxiliares que utilizei.

Função mostraBandeiraBrasil(x,y,l), e execução.
O resultado final:


segunda-feira, 16 de novembro de 2015

Lançamento balístico - Framerate e tempo real

A atividade proposta foi: aumentar o framerate do simulador de lançamento balístico criado em sala de aula para 10 fps, e deixar o simulador em tempo real.
No Processing, a função frameRate() determina quandas vezes por segundo algo no draw() será executado. O default do processing é de 60 fps.


Alterando o framerate para 10 fps, devemos dividir o incremento de tempo por 10 também, para que ao se passar 1 segundo na simulação seja adicionado o total de 1 na variável de tempo dela, deixando a simulação em tempo real.



O lançamento balístico é a associação de dois movimentos: um movimento MRU no eixo x e um movimento MRUV no eixo y.
Segue abaixo o código comentado:






O resultado final, com velocidade horizontal = 30, Velocidade vertical = 100 e aceleração vertical = -10 (gravidade da terra):


Simulador MRU - Colocando cores

A atividade proposta foi adicionar cores ao simulador de MRU, seguindo alguma harmonia cromática.
Optei por uma Harmonia cromática de contraste: com cores bem distintas, é fácil distinguir o fundo das linhas e da bolinha. Fundo preto, linhas verdes e bola branca.
Nas imagens abaixo, temos o código comentado:




O resultado final é esse:

terça-feira, 10 de novembro de 2015

Flores e Pitágoras - Criando um "jardim"

A atividade proposta foi que fosse criada uma função flor3 que criasse uma flor com 4 pétalas nas diagonais, tangentes ao miolo, partindo da função flor2 criada em sala de aula. Depois, o Processing deve imprimir 100 flores dessas na tela e parar a execução.
Segue abaixo o código da função flor2:


E da função circulo, que é utilizada em flor2:


Executando o código abaixo:



A flor2 é retornada.



Partindo da flor2, fiz a função flor3, que cria pétalas nas diagonais. Para isso, fiz alguns cálculos.
  
                                
Como se pode ver na imagem acima, para colocar as “pétalas” das flores foi considerado a existência de um triângulo retângulo imaginário, com a hipotenusa valendo 2r, e os catetos x.

Aplicando o teorema de Pitágoras, temos:
X²+X²=(2r)²
Desenvolvendo...
2X² = 4r²
X² = 2r²
X = r
A coordenada de cada pétala (X e Y) deve ser igual ao valor das coordenadas do miolo e mais ou menos (dependendo da posição da pétala) o valor r  .
As linhas de código da função flor3 são essas:
 
                 
O primeiro circulo() cria o miolo, os demais, as pétalas.
Executando as seguintes linhas de código:
                       
O Processing retorna o seguinte:





E executando essas linhas de código:



Temos a saída de 100 flores de tamanhos randômicos. Adicionei uma escala monocromática para diferenciamento das mesmas:


Código completo:


MousePress - Brincando com os exemplos do Processing

A atividade proposta foi que fosse escolhido um dos exemplos do processing e o mesmo fosse estudado e modificado. O exemplo que eu escolhi foi o seguinte:

O exemplo serve para explicar que alterações podem ser feitas quando algum botão do mouse é pressionado (mousePressed).


 
Nessa parte específica do código, temos uma estrutura de repetição (IF) no draw (que repete a ação nele infinitas vezes, como um motor). Caso o botão do mouse esteja pressionado (IF (mousePressed)) a cor das linhas geradas (o stroke) é mudada para branco (255). Senão (else), para preto (0).
Essas linhas de código fazem com que uma cruz seja gerada na posição do mouse. Se o botão estiver apertado, cruz branca. Senão, preta. A execução do programa fica dessa forma:



Abaixo temos o código alterado por mim:


A modificação está na linha 18, no stroke(). Ao invés de colocar um valor físico e monocromático, fiz com que recebesse 3 valores (RGB): o primeiro varia de acordo com a posição X do mouse, o segundo varia de acordo com a posição  do mouse, e a terceira é um valor randômico de 0 a 255.

A execução do programa fica dessa forma:

Hello World! Processing - Primeiras impressões



Nesse post, falarei sobre minhas observações sobre o documentário “Hello world! Processing”, que basicamente serve como um “Hello World!”, mas não somente da linguagem, mas também da ferramenta e da comunidade do Processing em si.

A grande diferença entre o processing e outras ferramentas de programação é o fato de que também é uma ferramenta bem visual: você escreve o código, o executa, e um resultado gráfico é exibido na tela. Programando imagens, gráficos, simuladores, etc. O fato de haver essa resposta gráfica uniu os programadores, designers e até artistas numa só comunidade, que passam a usar o processing como um sketch book.



Certos algoritmos produzem respostas gráficas tão incríveis e orgânicas que até parece que o criador do algoritmo ensinou um computador a fazer arte. E de fato ele fez.
Pra quem quiser dar uma conferida no documentário, segue o link:

https://www.youtube.com/watch?v=OgupE9snZlQ

quinta-feira, 15 de outubro de 2015

Matemática aplicada a multimídias - Novas postagens!

Bom, a partir de agora, atividades relacionadas à cadeira de Matemática aplicada a multimídias serão postadas aqui (yay! mais uma matéria pro blog!). Isso quer dizer que coisas como códigos (de processing), prints e fotos de papel (sim, papel) vão aparecer por aqui.
Para ter acesso a todas as postagens relacionadas a essa cadeira, é só selecionar a tag MAMI (todas as postagens relacionadas a cadeira serão marcadas com essa tag.