terça-feira, 2 de setembro de 2014

Aula 07 - Relógio: resto e quociente

O desafio é criar um relógio usando o Pebble Alphabet de Clotilde Olyff.


Para isto, podemos extrair os algarismos da imagem acima manualmente e salvá-los como imagens individuais. Então, no sketch, quando quisermos exibir o dígito "1", por exemplo, carregamos a imagem respectiva e exibimos na tela.

O Processing oferece funções para capturar horas, minutos e segundos do sistema na forma de números inteiros. Porém para exibir os dígitos corretos conforme explicado anteriormente é preciso quebrar os números de dois algarismos em dígitos individuais. "12", por exemplo, deve ser quebrado em "1" e "2".

A solução é simples: dividir o inteiro por 10. Mantendo "12" como exemplo, o quociente da divisão será "1", e o resto será "2". Temos os dígitos necessários: "1" e "2". Isto é feito para horas, minutos e segundos. O resultado é este:


Como este arquivo envolve carregamento de imagens, não é possível executá-lo online.

segunda-feira, 25 de agosto de 2014

Aula 06 - Lançamento Balístico

Continuamos o simulador iniciado na quinta aula. Implementamos o movimento retilíneo uniformemente variável (MRUV), que difere-se do MRU por sofrer efeito de uma nova variável: a aceleração. A aceleração é a variação da velocidade do corpo conforme o tempo. No MRUV, a aceleração é constante.

Para reproduzir o lançamento balístico, precisamos analisar o movimento de um corpo lançado para o alto. A velocidade vertical deste corpo sofre efeito da gravidade, aceleração de 9,8 m/s² com direção vertical no sentido do chão (MRUV). A velocidade horizontal do corpo, desprezando-se o atrito do ar, não sofre qualquer efeito, portanto é constante (MRU).

O lançamento balístico é a junção destes dois movimentos: MRU na horizontal e MRUV na vertical. O resultado da aplicação das fórmulas matemáticas destes movimentos no simulador pode ser conferido aqui:


terça-feira, 19 de agosto de 2014

Aula 05 - MRU

Cálculos científicos foram um dos maiores motivadores do início do desenvolvimento da computação eletrônica. O ENIAC, nascido durante a Segunda Guerra, é creditado como o primeiro computador digital de grande escala e seu objetivo primário era realizar cálculos balísticos. Mesmo com uma capacidade de processamento obviamente ínfima se comparado aos computadores atuais, o ENIAC era capaz de fazer contas muito mais rapidamente do que humanos fariam.


As simulações virtuais foram o avanço dos cálculos eletrônicos. Hoje as máquinas permitem visualizar o resultado e o processamento de cálculos complexos.

Explorando esta possibilidade, desenvolveremos um simulador de balística no Processing. Cada aula acrescentará uma característica do cálculo e de início trabalhamos com movimento retilíneo uniforme (MRU), ou o movimento de um móvel em velocidade constante em relação a um referencial ao longo de uma reta.

O resultado foi este:



domingo, 17 de agosto de 2014

Aula 04 - Repetições

Repetições em programação são códigos executados diversas vezes seguidas caso determinada condição seja atendida. As repetições mais comuns na maioria das linguagens de programação são while e for. Para desenhar uma linha de quadrados, como no exemplo abaixo, repete-se o desenho do quadrado 10 vezes utilizando o eixo X como parâmetro.


Para criar uma imagem em halftone no Processing, pode-se executar um processo parecido, desenhando círculos cujo diâmetro muda conforme o eixo Y:



Outro exemplo, levando em conta a distância de cada ponto em relação ao ponteiro do mouse (e um pouco de noise):





segunda-feira, 11 de agosto de 2014

Aula 03 - Bônus

A função do Batman. No Google:

Com alguns exageros:


Aula 03 - Funções

Funções matemáticas são leis que geram um elemento y correspondente para cada valor x, o velho f(x). O resultado de um conjunto de valores processados por uma função podem ser exibidos em gráficos, e isso torna as coisas bem mais interessantes:


O gráfico acima é uma imagem do gráfico gerado pelo buscador Google quando se insere a função em destaque na caixa de pesquisa.

Que tipo de desenho poderíamos fazer com uma função bem mais simples? Uma onda senoide... Ou duas ondas inversas. Ou melhor, uma sequência de DNA!


Aula 01 - Bônus

Só o exemplo da aula com modificações.