exerciciosmateuslima
exerciciosmateuslima
Matemática Aplicada à Multimídia I
18 posts
Mateus Lima -Turma 03A - SMD
Don't wanna be here? Send us removal request.
exerciciosmateuslima · 9 years ago
Text
Trabalho Parte II
https://youtu.be/mnAPLO6F5z0
0 notes
exerciciosmateuslima · 9 years ago
Text
Exercício 15 - Discutir, através de exemplos, como a teoria dos conjuntos é aplicada ao desenvolvimento de aplicações multimídias.
“Um conjunto é qualquer coleção, dentro de um todo de objetos definidos e distinguíveis, chamados elementos, de nossa intuição ou pensamento” - Georg Cantor.
No photoshop é possível perceber vários exemplos da teoria de conjuntos, por exemplo, os vários tipos de ferramentas de seleção existentes que selecionam um conjunto de pixels. Ainda no photshop existe a ferramenta carimbo que copia um conjunto de pixels para outra posição.
0 notes
exerciciosmateuslima · 9 years ago
Text
Exercício 14 - 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.
Utilizei como base o exercício de FadeOut feito em classe:
Tumblr media
Criei duas variáveis do tipo PImage, criei a varíável do tipo float a2 para a segunda imagem e crie mais três variáveis para receber os valores r, g e b da segunda imagem.
Tumblr media
Após isso pré-carreguei as imagens no processing:
Tumblr media
Como a=1 a posição Y do mouse será o valor proporção em relação a altura da imagem e a2 vai ser igual 1 que se refere a opacidade total subtraído do valor de a. Essa estrutura é a responsável pela “troca” de imagens dependendo da posição do mouse.
Tumblr media
Por último, isolei os canais RBG das duas imagens e no fim uni os dois valores.
Tumblr media
O resultado final é esse:
Tumblr media
0 notes
exerciciosmateuslima · 9 years ago
Text
Exercício 13 - Discutir como ajustar o contraste de uma imagem de acordo com o valor de uma variável específica.
   O contraste de uma imagem refere-se à diferença entre a região clara e escura. No processing, para alterar o contraste de uma imagem, utilizando como base o programa feito em sala onde se separa os canais RGB de uma imagem em variáveis diferentes.
Tumblr media
A mudança que fiz foi criar uma nova variável do tipo float e multipliquei os valores das variáveis r, g, e b por essa nova variável.
Tumblr media
Quando con=1 a imagem fica normal.
Tumblr media
Quando con>1 o contraste aumenta.
Tumblr media
Quando con<1 o contraste diminui.
Tumblr media
0 notes
exerciciosmateuslima · 9 years ago
Text
Exercício 12 - Discutir a criação de um mapa a partir de um tileset isométrico.
   Tileset isométrico é aquele onde seus tiles foram desenhados sobre um plano ortogonal em relação aos eixos X, Y e Z. Isso faz com que o tile pareça ter profundidade, o que dá uma impressão 3D no desenho, mesmo ele tendo sido criado em um plano 2D.
Tumblr media
   Para criar um mapa isométrico no processing, primeiro criei duas variáveis do tipo PImage que recebe imagens como valores.
Tumblr media
   Após isso criei uma matriz de nome mapa composta por 1 linha e 2 colunas, preenchida com os números 0 e 1.
Tumblr media
   Inicialmente não atribui valores(imagens) para as variáveis imgSolo e imgArvore, para atribuir a elas as imagens que serão utilizadas utilizei a estrutura loadImage().
Tumblr media
   Para criar o mapa completo, criei duas estruturas for() que irão percorrer a matriz mapa[][], quando o valor percorrido for igual a 0 a variável imgSolo será carregada e quando o valor for 1 a variável imgArvore será carregada. Cada tile possuirá uma posição X e uma posição Y específica.
Tumblr media
      Para posicionar os tiles usei a estrutura image(), dentro dela especifiquei que imagem seria mostrada na tela(quando 0 mostra imgSolo, quando 1 mostra imgArvore) e as posições X e Y de cada tile.
Tumblr media
   Para que os tiles se posicionem de maneira correta é necessário sobrepor algumas partes. Por exemplo:
Tumblr media
   Depois de centralizar o tile 01 na tela, para que o tile 02 ficasse alinhado com o outro tile peguei o valor da posição X que está a 53pxls do canto esquerdo da tela e dividi pela metade do tile 01 ou seja, movi o tile 02 por 26,5pxls.
   O resultado final foi esse:
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Trabalho - Parte 01
   Como obra de referência, escolhi a Geometric Modern House localizada em Atenas, projetada pelo 314 Architecture Studio.
Tumblr media
   De início vetorizei a estrutura da casa no Illustrator e tirei as medidas do vetor em cm:
Tumblr media
   Para a replicação utilizei a barra vertical da esquerda como base para cálculos, fazendo uso de escala defini que 2,5cm na imagem vetorizada corresponde a 100px no processing.
Criando a primeira barra:
Tumblr media Tumblr media
   Para definir a altura usei a escala que defini, a barra possui 2,5cm de altura na imagem vetorizada que irá corresponder no processing a 100px, a largura da barra mede 0,2cm para achar o valor em pixels utilizei proporção onde se 2,5cm correspondem a 100px, 0,2cm vai corresponder a 8px.
Segunda barra:
Tumblr media Tumblr media
   Ela possui uma largura de 3,0cm que corresponde a 120px e sua altura tem o mesmo valor da largura da primeira barra que mede 8px.
Terceira barra:
Tumblr media Tumblr media
   Para definir sua posição X na tela, subtrai do valor da posição X da primeira barra que é igual a 300px o valor de 4px que é correspondente a 0,1 cm que é a distância do começo da barra 1 para a barra 3. Para sua posição Y fiz a mesma coisa porém somei ao valor de Y da primeira barra o valor de sua altura(100px).
   Sua largura mede 9,5cm que corresponde a 380px e sua altura mede 0,3cm que é igual a 12px.
Quarta barra:
Tumblr media Tumblr media
   Sua altura é de 2cm que vai ser igual a 80px e sua largura possui 0,4cm que corresponde a 16px.
   Sua posição X vai ser igual a posição X da primeira barra(300px) somado com a largura da mesma barra(8px) somado a distância entre as duas barras que possui 4,0cm e corresponde a 160 então: 300+8+160=468. Sua posição Y será definida pela subtração entre a posição Y da barra 3(400px) e o valor de sua altura, então: 400-80=320px.
Quinta barra:
Tumblr media Tumblr media
   Sua altura e largura possuem as mesmas medidas da altura e largura da barra 4(16px,80px). Além disso sua posição Y também possui o mesmo valor(320px).
   Sua posição X vai ser igual a soma entre a posição X da barra 4(468px), a largura da mesma(16px) e a distância entre as duas barras que corresponde a 1,5cm(60px), então:468+16+60=544.
Sexta barra:
Tumblr media Tumblr media
   O valor de sua posição X é a soma da posição X da barra 2(300px) com a largura da barra 2(120px) e a distância entre elas que é de 0,2cm(8px): 300+120+8=128. Sua posição Y vai ser a subtração entre a posição Y da barra 3(400), a altura das barras 4 e 5(80) e a largura da barra atual que mede 0,3 que corresponde a 12px: 400-80-12=308.
   Possui altura de 0,3cm(12px) e de largura possui 4,0cm(160px).
Sétima barra:
Tumblr media Tumblr media
   Sua posição X possui o mesmo valor da barra de número 6(428px) e sua posição Y é o valor da soma entre a posição Y e a largura da barra 6(308px+12px) subtraindo o valor da distância entre as barras que é de 2,0cm(80px):320-80=240.
   Possui o mesmo valor da altura da barra 6(12px) e sua largura possui 170px( para poder criar a barra diagonal aumentei a largura da barra 6 em 10px).
Oitava barra:
Tumblr media Tumblr media
   Para formar essa barra diagonal como primeiro parâmetro X a posição inicial da barra 7 somada a sua largura(428px+70px=498px) e como Y a mesma posição da barra 7(240px). No segundo parâmetro X somei o valor de X do primeiro parâmetro com 10px e como Y o mesmo valor do primeiro parâmetro(240px). Como terceiro parâmetro X somei a posição X da barra 6 com sua largura(428px+160px=588px) e como Y somei a posição Y da barra 6 com sua altura(308px+12px=320px). Por último como quarto parâmetro na posição X subtrai 10px do valor da posição X do terceiro parâmetro e como posição Y utilizei o valor da posição Y da barra 6(308px).
Conjunto de pequenas barras:
Tumblr media Tumblr media
   Para criar essas cinco barras seguidas crie uma estrutura for onde a posição X de todas serão igual a posição X das barras 6 e 7(428px) somada a 10px e para a posição Y a primeira barra começa na posição 256px(soma da posição Y da barra 7 com sua largura e 4px) e vai até a posição Y da barra de número 2 onde a cada 10px uma barra de 8px de largura e 4px de altura será criada.
Preenchimento interno:
Tumblr media Tumblr media
   Para formar o preenchimento, como primeiro parâmetro X somei a posição X da sequência de pequenas barras com 10px(438px+10px=448) e como Y subtrai da posição Y da barra 6 o valor de 4px(308px-4px=256px). No segundo parâmetro X atribui o valor de 575px Y o mesmo valor do primeiro parâmetro(304px). Como terceiro parâmetro X atribui o valor de 589px e como Y utilizei o valor da posição Y da primeira barra da sequência de cinco barras(256px). Por último como quarto parâmetro na posição X utilizei o mesmo valor da posição X do primeiro parâmetro e como Y utilizei o mesmo valor da posição Y do terceiro parâmetro.
   Para modularizar a parte de construção fiz as seguintes alterações:
Tumblr media
   Criei um procedimento chamado módulo que recebe como parâmetro as variáveis x(referente a posição X), y(referente a posição Y) e m(referente a altura e largura). O que fiz basicamente foi substituir os valores predefinidos pela divisão deles pelo número 100.
   Após isso dupliquei a parte interna do procedimento módulo e fiz com que uma segunda estrutura da casa fosse criada, porém invertida.
Tumblr media
  A estrutura rotate() é a responsável por inverter a imagem.
Tumblr media
   Após modularizar a construção, chamei o procedimento no draw(). Utilizei duas estruturas for’s, o primeiro for é responsável por desenhar colunas com os módulos criados a cada 100px percorridos e vai até a posição do valor da largura da tela e o segundo for desenha linhas com os módulos a cada 40px percorridos e vai até a posição do valor da altura da tela.
Tumblr media
Ao se alterar o valor da referente ao parâmetro m no procedimento modulo se consegue diferentes padronagens. Resultados finais:
m=10;
Tumblr media
m=20;
Tumblr media
m=30;
Tumblr media
m=40;
Tumblr media
m=50;
Tumblr media
https://www.dropbox.com/s/9etovh3vevgd70h/TrabalhoFinalMateusLima.pde?dl=0
1 note · View note
exerciciosmateuslima · 10 years ago
Text
Exercício 11 - Considerando o exemplo visto em aula, discutir como a transformação em procedimento/função pode simplificar a programação.
   Modularizar partes de código utilizando procedimentos e funções facilita a detecção de erros, é mais fácil testar módulos separadamente do que o código completo, evita a duplicação de código quando é necessário repetir uma mesma operação mais de uma vez, a manutenção do código se torna mais fácil, permite também o desenvolvimento separado de cada módulo e permite a reutilização do código.
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 10 - Considerando também a movimentação vertical, criar uma versão simplificada do jogo Pong, com um único ponto disputado.
Primeiro declarei variáveis para as posições X e Y da bola, o deslocamento da bola e posições Y dos dois paddles:
Tumblr media
Para movimentar os paddles na vertical utilizei a seguinte função:
Tumblr media
Criei um função booleana onde se a bola tocar o paddle a função retorna true:
Tumblr media
Parte responsável por criar a bola e os paddles na tela:
Tumblr media
Para que a bola ao colidir com a parte superior e inferior da tela utilizei a mesma estrutura if da atividade 09 porém sem o aumento de 1% a cada colisão.
Tumblr media
Removi as colisões nos cantos laterais da tela e quando a bola atravessa uma das extremidades um dos jogadores é declarado campeão.
Tumblr media
Fiz duas estruturas if’s onde quando a função colisãoPaddle - utilizando como parâmetros as extremidades direita e esquerda da bola e as extremidades iniciais e finais no eixo X dos dois paddles - for verdadeira e a posição da bola no eixo Y estiver entre o topo e a base do paddle a bola irá colidir com um paddle e se movimentará no sentido contrário.
Tumblr media
O resultado final é esse:
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 9 - Aumentar a velocidade da bola em 1% a cada colisão e relacionar com o modelo de MRUV anteriormente trabalhado, discutindo a diferença de abordagem na solução.
O código é praticamente o mesmo da atividade feita em sala, a única diferença é que toda vez que a bola colidir em uma das extremidades da tela seu deslocamento será somado com 1% do valor do deslocamento atual.
Tumblr media
O código completo:
Tumblr media Tumblr media
Assim como no código do movimento de MRUV a bola vai possuir uma velocidade de deslocamento tanto na horizontal como na vertical.
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 8 - Criar e discutir uma aplicação que muda individualmente a cor do preenchimento de dois círculos, com raios e centros randômicos, sempre que o cursor do mouse passar sobre os mesmos.
   Primeiramente criei variáveis que recebem valores randômicos para as posições X e Y dos dois círculos e seus diâmetros.
Tumblr media
   Para desenhar os círculos na tela e fazê-los mudar sua cor preenchimento quando o mouse estiver sobre eles utilizei a seguinte estrutura:
Tumblr media
   O que faz com que o preenchimento mude de cor são as estruturas if’s que utilizei onde um círculo mudará sua cor com quando as posições X e Y do mouse estiverem entre as posições centrais X e Y do círculos menos o diâmetro/2 e as posições centrais mais o diâmetro/2 ((mouseX>=x-diametro/2 && mouseX<=x+diametro/2) && (mouseY>=y-diametro/2 && mouseY<=y+diametro/2)).
O resultado final é esse:
Tumblr media
1 note · View note
exerciciosmateuslima · 10 years ago
Text
Exercício 7 - Fazer o “A” da Braun continuamente aumentar e diminuir de tamanho no centro da tela.
Para construir o A utilizei por base a seguinte foto apresentada no slide da aula:
Tumblr media
Na construção da perna esquerda do A utilizei a estrutura: 
Tumblr media Tumblr media
Após a criação da perna esquerda, criei a parte central superior da letra e a parte que fica entre as pernas da letra utilizando a estrutura:
Tumblr media Tumblr media
Criei a perna direita utilizando a mesma estrutura usada na perna esquerda modificando apenas sua posição no eixo “x”:
Tumblr media Tumblr media
Para “fechar” a letra criei dois arcos em forma de torta:
Tumblr media Tumblr media
Para arredondar a parte interior superior da letra, primeiramente fiz dois quadrados utilizando como medida 1/4 do lado de 1 módulo:
Tumblr media Tumblr media
Após isso fiz duas elipses na cor do fundo para arredondar:
Tumblr media Tumblr media
Por último para que o A ficasse mudando constantemente de tamanho e permanecesse sempre no centro da tela fiz o seguinte:
Tumblr media
Resultado Final:
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 6 - Considerando a Lei Federal Nº 5.700, criar uma função mostraBandeiraBrasil(x,y,l).
Segundo a lei:
Tumblr media
Criei a função mostraBandeiraBrasil(x,y,l) e seguindo a lei nacional encontrei os valores de um módulo e da altura da bandeira.
Tumblr media
Criando o retângulo:
Tumblr media Tumblr media
Criando o losango:
Tumblr media Tumblr media
Para criar o círculo:
Tumblr media
Para centralizar ele somei o valor da coordenada x da bandeira com a metade do valor da largura, a mesma coisa fiz com a posição y só que somando com a metade da altura. Para cálculo do raio utilizei o que foi especificado na lei.
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 5 - Alterar a aplicação de lançamento balístico para recálculo a cada 0,1 segundo  (=10 fps), porém mantendo o tempo real.
  Para fazer o código de lançamento balístico basta criar uma aplicação que una o movimento MRU com o MRUV. O movimento MRU é o responsável pelo deslocamento horizontal e o MRUV o vertical do projétil. 
Tumblr media
  Ao se alterar o frame rate para 10 fps é necessário alterar o tempo de recálculo para tAtual=tAtual+0.1, isso faz com que o simulador funcione em tempo real. Não aplicar essa alteração no tempo de recálculo faz com que o percurso do projétil não seja mostrado por completo.
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 4 - Alterar o simulador de MRU feito em sala de acordo com uma harmonia cromática á sua escolha e, informar na própria tela (comando text) em tempo real, os valores de todas as variáveis envolvidas na simulação.
Código final com as alterações de cores:
Tumblr media
Escolhi usar a harmonização de cores em quadrado que consiste em utilizar quatros cores igualmente espaçadas no círculo de cores. Para a escolha das cores presumi que o simulador de MRU é destinado ao aprendizado de jovens na matéria de física.
Segundo a psicologia aplicada a cores:
>  VERMELHO é uma cor que transmite excitação, energia e coragem.           >  LARANJA representa juventude, alegria, otimismo, é uma cor amigável e convidativa.                                                                                                         >  VERDE transmite tranquilidade, prosperidade e crescimento.                         >  VIOLETA possui o estimulo do vermelho e a calma do azul. Reflete dignidade além de criatividade e imaginação.
Tumblr media
Resultado final:
Tumblr media
0 notes
exerciciosmateuslima · 10 years ago
Text
Exercício 3
Transformando a flor em formato de cruz do exercício aplicado em sala em uma flor em formato de X.
Tumblr media
SUPER FÁCIL E PRÁTICO!!! XD XD XD
Agora sério...
Código:
Tumblr media
Relação entre as flores:
Tumblr media
Resultado Final:
Tumblr media
Download do código
1 note · View note
exerciciosmateuslima · 10 years ago
Text
Exercício 2 - Pegar um dos exemplos no site https://processing.org e fazer mudanças
Escolhi o exemplo onde o usuário desenha uma linha enquanto o mouse estiver pressionado.
Tumblr media
Modifiquei para que a linha ficasse sempre mudando sua cor e sua espessura.
Tumblr media
Link para os arquivos: https://www.dropbox.com/s/q476lial1qunf79/Exercicio2.rar?dl=0
1 note · View note
exerciciosmateuslima · 10 years ago
Text
Exemplos de artes feitas no Processing pelo artista croata Paolo Ceric
Tumblr do artista: http://patakk.tumblr.com
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
2 notes · View notes