domingo, 23 de novembro de 2014

Aula de Fade

Fade é uma técnica de suavização de transição de imagens (do preto, do branco ou de outra imagem). Quando o fade se origina de uma outra imagem, diz-se que o efeito é de crossfade.

O efeito é obtido alterando o peso de uma média ponderada (alpha) entre a cor de cada pixel das duas imagens. No início da transição, o peso é de 100% para a primeira imagem. No meio, o peso é de 50% para cada imagem. No final, 100% para a segunda imagem.

Para obter efeitos variados de crossfade, pode-se variar a velocidade de mudança do peso (alpha), utilizando uma função senóide, por exemplo. A demonstração abaixo utiliza transição linear, no entanto.


domingo, 16 de novembro de 2014

Trabalho Final - Espirógrafo

Funções trigonométricas regem muitos -- se não a maioria -- dos movimentos oscilatórios naturais, desde o balanço de um pêndulo até o traçado de alguém caminhando.

Elas regem também as possibilidades fantásticas obtidas pelo desenho no espirógrafo:

Desenhos feitos com lápis colorido em um espirógrafo
Desenhando em um espirógrafo
O espirógrafo foi inventado por um engenheiro britânico em 1965 e hoje tem os direitos reservados pela Hasbro. Existem variações mecânicas do brinquedo, mas o original consiste em um conjunto de engrenagens encaixáveis, sendo uma delas em forma de círculo (com dentes internos) e a outra em forma de moeda (com dentes externos) com perfurações.

Para usá-lo, você deve colocar o par de engrenagens sobre um papel, inserir uma caneta em uma das perfurações da engrenagem-moeda e girá-la por dentro da engrenagem-círculo.

Para reproduzir este movimento no Processing, longe de executar cálculos físicos para obter o o movimento dos dentes das engrenagens, utilizei funções trigonométricas simples para determinar posição correta da engrenagem e do traço.

A partir daqui, chamarei a engrenagem-círculo de Círculo, a engrenagem-moeda de Engrenagem, e a perfuração na engrenagem-moeda de Ponto.

A Engrenagem faz um movimento circular contínuo em torno do centro do Círculo, calculado utilizando coordenadas polares e funções de seno e cosseno. O raio da Engrenagem pode ser alterado pelo usuário, mas ela sempre deve tocar a borda do Círculo. Para obter este resultado, a distância utilizada no cálculo da coordenada polar é o raio do Círculo menos o raio da Engrenagem. A posição obtida no cálculo é função do cosseno (horizontal) e seno (vertical) do ângulo atual.

Devemos notar que, se a Engrenagem translada em sentido horário, sua rotação será em sentido anti-horário. Portanto, o Ponto sobre a Engrenagem gira no sentido contrário à velocidade angular de translação da Engrenagem.

A posição correta do Ponto é calculado pelo mesmo processo de coordenadas polares da posição da Engrenagem, utilizando a distância, o centro e o raio da Engrenagem como parâmetros.



Resumindo, executo dois cálculos de coordenadas polares: da Engrenagem em relação ao Círculo, e depois do Ponto em relação à Engrenagem, conforme a animação acima.

Por fim, acrescentei controles para parametrizar raios e distâncias diversos utilizando a biblioteca de interface gráfica ControlP5.

Veja a demonstração do Espirógrafo concluído:



Obs.: é necessário ter a biblioteca ControlP5 para executar este sketch, em Sketch >> Import Library... >> Add Library... >> ControlP5