Postagens

Mostrando postagens de janeiro, 2016

Exercício 21 - The Beauty of Data Visualization

A palestra "The Beauty of Data Visualization" mostra a importância da transformação de informações em algo visual. Como o mundo está cada vez mais globalizado, as informações circulam com extrema facilidade, ou seja, estamos submetidos a esse tipo de situação a todo momento por conta do excesso e da velocidade em que esses dados são transmitidos. Grande Parte das informações transmitidas para o cérebro são visuais, ou seja, o sentido da visão capta muito mais rápido do que qualquer outro sentido,  e a palestra trata justamente desse assunto, Porque não transformar informações em algo visual?  David McCandless, afirma que a visualização de dados nos permite ver os padrões e conexões que realmente importam, projetando as informações para que façam mais sentido. Visualizar a informação pode nos dar uma solução rápida para vários tipos de problemas e mesmo quando a informação não é agradável, o visual pode ser bonito.

Exercício 20 - O olho

Neste exercício irei criar um olho que se encontra sempre voltado para o cursor do mouse. Para fazer isso foi necessário utilizar a função do Sensor de distância , aprendidos na aula 8 e também fazer a conversão de coordenadas polares em cartesianas utilizadas nos exercícios do Cronômetro e do Polígono regular . Para o sensor de distância foi necessário duas funções vistas anteriormente que calculam a distância entre dois pontos( distancia1D ), e outra que calcula a distância entre um ponto e a posição do mouse: int distancia1D( int X1, int X2){ //função para encontrar a distancia entre 2 pontos    int resposta;    int aux;   aux = X2 - X1;   resposta =  int ( sqrt (aux * aux));    return resposta; } int distanciaO_bola( float X, float Y){ //função para encontrar o centro da bola       int dV = distancia1D( int (Y), mouseY ); //distancia entre ...

Exercicio 19 - Cronômetro

Neste exercício irei fazer um algoritmo usando a função millis() do processing para simular um cronômetro, apenas com o ponteiro dos segundos. Para isso foi necessário utilizar a função que troca as coordenadas polares por cartesianas,aprendido em sala:      float [] polar_cartesiano( float ang, float r){    float [] posL = new float [2];      posL[0] = r* cos (ang);     posL[1] = r* sin (ang);      return posL; }        Também será necessário a função millis() do processing, para isso atribuí a uma variável m :       m =  millis ()-start;   s=m/1000;  //transformar milisegundos em segundos   Outro ponto essencial para o funcionamento do programa é o valor do angulo do ponteiro, para isso determino que a cada segundo somo o angulo do ponteiro a 6° graus:     angulo =...

Exercício 18 - Barco em movimento

Irei criar o movimento de um barco no mar neste exercício utilizando os conceitos de seno, aprendidos em aula. Para fazer isso, utilizarei basicamente de uma equação básica:         y= (( sin (periodo)+1)*amplitude)+ height /2;         período+=0.1; O nde y é a posição Y do barco. Para criar a onda, me baseei pelo exemplo encontrado em https://processing.org/reference/sin_.html :         float a = 0;     float inc = TWO_PI /20.0;    for ( int i=0; i<500; i=i+4) {      stroke (30,90,140);      line (i, 300, i, 170+ sin (a)*10.0);     a = a+ inc;   }    Onde a é o período e inc é o incremento desse período. Para a função do barco foi necessário dois parâmetros(x e y do barco), nesta função alem de desenhar o barco, ela também conta com out...

Exercício 17 - Polígono regular

Imagem
Neste exercício irei criar uma aplicação que desenha um polígono regular centralizado na tela com a quantidade de lados informada no próprio código. Bom, como fiz este exercício na Aula 19 de Matemática aplicada á Multimídia I então irei coloca-lo da maneira que aprendi nessa aula, utilizando coordenadas polares e a transformando coordenada cartesiana. Para isso criei algumas variáveis que são: ·          angulo : necessária para saber qual angulo cada "triangulo" do polígono terá ·          lados : o número de lados que o polígono terá ·          pos (vetor): posição x e y atual; ·          aux (vetor): posição x e y anterior;         Primeiro criei uma função pra transformar coordenadas polares em cartesianas, explicada em sala de aula, basta ter o angulo e o raio, então a p...

Exercício 16 - Teoria dos Conjuntos aplicada á multimidia

Imagem
Neste exercício será necessário discutir, através de exemplos, como a teoria dos conjuntos é aplicada ao desenvolvimento de aplicações multimídia. Como já sabemos, a teoria dos conjuntos é uma teoria matemática que discute a associação de objetos com uma mesma propriedade. Bom, e o que isso tem a ver com aplicações multimídia? Na verdade tem muito a ver, muitas aplicações multimídias utilizam da teoria dos conjuntos em suas concepções. Irei citar alguns exemplos: Chroma key O Chroma key, que foi inclusive feito em sala de aula, se apropria da teoria dos conjuntos, já que seu objetivo é isolar um personagem em um vídeo ou foto para combinar com outra imagem, ou seja, há os conjuntos de personagem, cor de fundo e cenário, tudo que pertence ao conjunto cor de fundo é trocado pelo conjunto cenário.   Envelhecimento digital Outro exemplo feito em sala de aula, o envelhecimento digital, também utiliza a teoria dos conjuntos, como por exemplo utilizando o efei...

Exercício 15 - Knob

Imagem
Neste exercício será necessário criar uma aplicação que simula o funcionamento de um knob , realizando o efeito dissolve entre duas imagens de acordo com a posição vertical do mouse. Em sala foi pedido para fazer um fade in/out com uma imagem, então aproveitarei o código para realizar esse exercício. Para fazer a mecânica de dissolve com o mouse primeiro será necessário fazer uma proporção, o tamanho da altura da imagem será entre 0 e 1, enquanto um valor aumenta o outro diminui, com duas variáveis a1 e a2 :    a1 = ( mouseY *1.0/240);    a2= (( height *1.0/240)-( mouseY *1.0/240));         Com isso, será apenas necessário importar as imagens, a primeira recebendo a1*RGB e a outra recebendo  a2*RGB, por fim, pixels[pos] irá receber as somas das cores dos RGBs :     PImage imgImagem1,imgImagem2; float a1=1; float a2=0; float r, g, b,r2,g2,b2; int pos; void setup () { ...

Exercício 14 - Contraste

Imagem
Neste exercício será necessário discutir como ajustar o contraste de uma imagem de acordo com o valor de uma variável específica. Quando duas cores entram em contato, o contraste intensifica a diferença entre as duas, quanto maior o contraste maior essa diferença. Computacionalmente, o contraste é a razão entre os  níveis de cinzas médios de uma imagem. Para manipular o contraste no processing, foi necessário criar duas variáveis(fora a do exercício em sala), que no caso chamarei de correcao e contrast , a variável correção será necessária para fazer com que o contraste fique entre -255 e 255, ficando assim, mais fácil de manipular, e a variável contrast, s erá justamente para alterar esse valor.       correcao = (255 * (contrast + 255)) / (255 * (255 - contrast)); Utilizarei essa variável correcao e multiplicarei pelo RGB da imagem e mais um ajuste subtraindo e somando 128 para a...