quarta-feira, 25 de novembro de 2015

[Matemática Aplicada] - PRIMEIRO TRABALHO, Simulador de raia.

Bom dia paladinos do saber. O exemplo que utilizei para o primeiro trabalho da disciplina foi um vetor criado por Ramon Gibbs, é este da imagem:


Analisando-a, vemos que é uma forma que se repete várias vezes, utilizando o espaço negativo para completar uma textura, semelhante a de alguma calçada portuguesa.

Dissecando a forma para uma figura mais simples, temos um quadrado:


A partir deste quadrado, desenhamos um triângulo para a direita. Este triângulo tem a característica de ser o mesmo quadrado, porém cortado em sua metade pela diagonal superior esquerda até a inferior direita. Isso quer dizer que ele é isósceles cujos lados iguais são equivalentes ao lado do quadrado. Já sua terceira linha tem seu valor calculado pela diagonal do quadrado, L * √2


 Seguindo o mesmo critério, inserimos outro triângulo na parte inferior do quadrado para assim formar a figura:


Aqui está o código desta forma no Processing, tomando como base o centro da tela:


A função que criei tem apenas um parâmetro chamada módulo. Ela corresponde ao lado do quadrado, com isso é desenhada a forma no centro da tela. Não é necessário porém utilizar diagonal do quadrado, no Processing existe a função ()triangle que desenha um triângulo com base em seus três pontos, bastando as posições X e Y.

Certo, formei a figura. Agora precisava pensar em algo para utilizá-la. Fiquei um tempo tentado achar algo e acabei me cansando, fui para a janela fixar o olhar em algo distante, dizem que faz bem para a visão. Estava olhando para o céu e a ideia veio na minha mente. A forma que escolhi lembra a forma de uma raia:


Achava que com os materiais das aulas que estavam salvos em meu pen drive eu conseguiria fazer algo legal que lembrasse soltar raia. Então fui procurar. Pensei em utilizar primeiro o movimento do pingue-pongue:


Certo, mas pra ficar mais parecido com uma raia ao vento eu precisava de uma outra forma de movimento, fazendo uma pesquisa pela internet descobri funções chamas translate() e rotate() para dar um ar semelhante ao que eu queria. E ficou de um jeito que eu gostei, a posição da raia muda de acordo por onde o ponteiro do mouse está, dando ilusão de controle da raia enquanto o vento atua:


Está bem legal, mas falta a linha para soltá-la, lembrei então da aula que tivemos que desenhar uma linha que media a distância entre dois pontos. Apenas peguei a função que criei desta aula e inseri no meu código. Junto disto construi uma função chamada nuvens() para desenhar algumas nuvens e deixar um cenário de céu para tentar ficar mais atraente aos olhos. O resultado final foi este:


Aqui está o código completo:

 Variáveis globais.
 Aqui eu chamo as funções para desenhar as nuvens, a linha e a raia. Além de ter o movimento que causa o efeito de vento com base na posição do mouse, que é nossa mão.

 Aqui temos o movimento do pingue-pongue, que somado aos movimentos anteriores de rotação, causam o efeito esperado.

















Por fim, as funções da figura pela qual iniciei, linha e das nuvens respectivamente.

E este é o trabalho, a partir de um vetor relativamente simples apropriei-me de sua forma única e a utilizei em um limitado simulador de raia. É isto por enquanto, logo trarei novas aventuras no trabalho dois, um grande abraço e muita saúde!



[Oficina de Criatividade] - 5. Reutilização de Circuitos

Boa tarde cajueiros do meu pomar, voltamos com mais uma atividade para a disciplina de criatividade. Desta vez nossa missão era aproveitar uma placa de circuito para dar uma nova função para a bichinha, Como o pedaço que eu escolhi tinha um grande espaço circular em forma de buraco, pensei em fazer uma plaquinha de porta com aquela função célebre de "Não perturbe".


Depois de serrar em casa o pedaço que eu queria, fui para a aula onde eu pude utilizar uma caneta de marcar DVD/CDs para escrever os avisos que eu queria:


No calor da emoção, acabei errando a palavra perturbar, faltou um errezinho ali. Só pude perceber ao final da tarefa, acontece. :( Mas houve outra tretinha durante o processo, a caneta começou a falhar então fui dar aquela balançada pra tentar fazer aparecer alguma tinta na ponta, hehehehe. Não deu muito certo não...


Voou tinta pra todo canto, pegou no meu braço, no meu rosto, na minha colega que estava próxima,na mesa, no diabo-a-quatro. Fica a dica amiguinhos, não balancem esse tipo de caneta. Mas o que importa é que consegui escrever o que eu queria.


Eram dois lados: Um com a mensagem "vá perturbar outro", e uma com "entre com Amor". Assim você dá a opção 'educada' de permitir ou não a entrada de alguém em seu recinto sagrado.
A próxima parte era entregar a plaquinha para o professor Clemilson e seu ácido lokasso chamado percloreto de ferro pra corroer o cobre da placa.

Nenhum dedo foi perdido durante essa atividade


Este é o resultado final! Aguardem novas atividades, beijos de paz para cavarmos novos momentos bons. Até a próxima.

[Matemática Aplicada] - 7. A importância da função/procedimento

Bom dia paladinos do saber, nesta pequena postagem teremos uma reflexão sobre a importância da utilização de procedimentos/funções para simplificar a programação. Coloco como exemplo a primeira prova da disciplina de Matemática aplicada. Se eu não tivesse as funções/procedimentos feitas, eu teria que escrevê-las do zero e assim perderia muito tempo. A vida dos programadores seria mais tensa do que já é se eles tivessem que sempre reescrever códigos. Funções te fazem ganhar tempo.

Outra coisa importante é repetição de tarefas: Pego como exemplo meu trabalho de Matemática:


Ela é uma simulação de soltar raia, inseri um cenário que lembra o céu e com isto algumas nuvens feitas com elipses. Todas as nuvens são feitas chamando uma função chamada nuvens() uma única vez. Meu código ficar muito poluído se eu tivesse feito cada elipse individualmente, e muito difícil de outra pessoa entender o que diabos eu fiz. Funções ajudam também na perpetuação do seu código, facilitando outras pessoas de fazerem o mesmo que você, sem se preocupar em reescrever tanta coisa.

Por enquanto é só. Um grande abraço e muita saúde. Até breve! 

quarta-feira, 18 de novembro de 2015

[Oficina de Criatividade] - 4. Robozinho Gótico

Olá berinjelas do meu almoço, nesta atividade Emanuelle Alencar juntou-se comigo para desenvolvermos um robozinho gótico. Utilizando a placa Arduino, pensamos em fazer um robozinho que enquanto sob iluminação alta ficaria com raiva e começaria a toca um ruído desagradável e ter seus olhos piscando da cor vermelha infernal.

Aqui temos a lista do material que precisávamos para fazer o robozinho

Fomos pesquisar algum código que satisfizesse nosso desejo 

Inicialmente pensamos em utilizar a música da marcha imperial da série Star Wars, porém o código oferecia uma complexidade um pouco alta e durante a montagem no dia chave, ocorreu problemas e tivemos que trocar. Outro grande problema foi na montagem dos componentes. Acabamos nos confundindo com as entradas por diversas vezes e perdemos muito tempo com isto.
 
"Não está dando certo"

"Ops, coloquei no buraco errado."
 
Faltando poucos segundos para o término do prazo finalmente conseguimos. Faltou um planejamento de tamanho do robozinho, já que suas partes ficaram de fora do corpo, mas o protótipo funcionou como esperado. Deixarei o vídeo aqui: 
 
 
O outro led queimou, então ficou um robozinho gótico e caolho. Conceitual.

Bem, e foi isto. Foi meio tenso, mas conseguimos de certa forma fazer o que pensamos. Ficamos esperando a próxima missão. Até mais amiguinhos. Juízo sempre!

quarta-feira, 4 de novembro de 2015

[Matemática Aplicada] - 6. A bandeira do Brasil

Bom dia heróis. Tá tenso a coisa, energias chegando ao fim... Mas fazer o quê, filhos consomem nosso tempo mesmo. Falando em filhos, nós filhos da pátria brasileira tivemos a tarefa de desenhar a bandeira do Brasil seguindo a lei federal no Processing.


Esta é nossa bandeira linda, e o objetivo é reproduzi-la, não sendo obrigatório a parte interna da elipse, com o arco, texto e estrelas. Primeiro passo então é ir à lei e compreendê-la. Vamos ao artigo quinto da Lei Federal Nº 5700 para entender:


I - Para cálculo das dimensões, tomar-se-á por base a largura desejada, dividindo-se esta em 14 (quatorze) partes iguais. Cada uma das partes será considerada uma medida ou módulo.

Creio que o certo seria por base a altura desejada. Bem, vamos colocar isto na função.


O texto da lei fala que temos a largura(altura) como base, então nos parâmetros da função, coloquei a posição horizontal para iniciar o desenho (x), a posição vertical (y) e a largura(altura) da bandeira (a).
Depois criei a variável mod que será nosso módulo, ele é o valor da altura dividida por quatorze. Continuando na lei:

 II - O comprimento será de vinte módulos (20M).

A largura da bandeira será vinte vezes o módulo que temos. Certo. Vamos inserir esta informação em nossa função. Desta forma já conseguimos fazer o código do retângulo da bandeira:

Retângulo da bandeira OK.


III - A distância dos vértices do losango amarelo ao quadro externo será de um módulo e sete décimos (1,7M).


Nesta parte precisamos do papel. A princípio parecia complicado, mas após algum tempo ficou fácil pensar na forma de cálculo utilizando a função quad()
Os pontos X dos vértices verticais do losango sempre serão X somados a metade da largura enquanto os pontos Y dos vértices horizontais sempre serão Y somados com metade da altura. Após isso somar ou subtrair os pontos restantes com base em X,Y e a multiplicação do módulo por 1,7 que é como está na lei.

Retângulo e losango OK

IV - O círculo azul no meio do losango amarelo terá o raio de três módulos e meio (3,5M).

Certo, a parte mais complicada já se fora. Agora é desenhar a elipse central. Atentar ao fato de lembrar que o Processing utiliza o diâmetro para desenha as elipses, então vamos usar o valor de 7 módulos na construção de nossa figura.
 
Aqui o código completo. Lembrando que está sendo executado apenas uma vez, a visto de exemplo.

A bandeira completa.

Bom, é isto por hoje. Nesta atividade fica aparente a importância de colocar no papel e raciocinar para conseguir chegar a uma solução. Situações complicadas realmente podem tornar-se simples com calma e paciência. Um abraço, até mais!