Trabalhei como comunicador visual na comissão de comunicação do programa de aprendizagem cooperativa em células estudantis PACCE na propria UFC. Hoje sou editor de vídeos do Laboratório de Mídias Eletrônicas (LME), também vinculado a UFC.
Hoje vamos fazer não apenas um simbolo Yin-Yang, mas vamos a loucura fazendo 100 aparecendo em uma tela, lotando a tela. Começando com o processing. Vamos fazer o seguinte. Criaremos uma função para desenhar ele, utilizando um único parâmetro para todos os raios das circunferências que serão 5 ao todo, e um arco. Fica assim a função:
void yinYang(float r,float x,float y){ // r é o raio dos circlos menores, x e y as coordenadas do centro da figura.
fill(255);
ellipse(x,y,(r*5)*2,(r*5)*2); // circulo branco grande
fill(0);
arc(x,y,(r*5)*2,(r*5)*2,PI,2*PI,PIE); // Meio circulo preto, metade de cima
ellipse(x+(2.5*r),y,(2.5*r)*2,(2.5*r)*2); // circulo preto de raio 2,5 x raio do circulo menor
fill(255);
noStroke();
ellipse(x-(2.5*r),y,(2.5*r)*2,(2.5*r)*2); // circulo branco de raio 2,5 x raio do circulo menor
ellipse(x+(2.5*r),y,r*2,r*2); // circulo branco de raio r, é o circulo menor
fill(0);
ellipse(x-(2.5*r),y,r*2,r*2); // circulo preto de raio r, é o circulo menor
}
Depois de fazer essa função, faremos ela aparecer 100 vezes, como ela aparecerá apenas as 100 vezes, iremos por tudo no "setup()". E o codigo se finalizará assim:
float r; // raio da menor ellipse
float x; // coordenada x do centro da ellipse grande
float y; // coordenada y do centro da ellipse grande
float altura; // altura da janela
float largura; // altura da largura
void yinYang(float r,float x,float y){ // r é o raio dos circlos menores, x e y as coordenadas do centro da figura.
fill(255);
ellipse(x,y,(r*5)*2,(r*5)*2); // circulo branco grande
fill(0);
arc(x,y,(r*5)*2,(r*5)*2,PI,2*PI,PIE); // Meio circulo preto, metade de cima
ellipse(x+(2.5*r),y,(2.5*r)*2,(2.5*r)*2); // circulo preto de raio 2,5 x raio do circulo menor
fill(255);
noStroke();
ellipse(x-(2.5*r),y,(2.5*r)*2,(2.5*r)*2); // circulo branco de raio 2,5 x raio do circulo menor
ellipse(x+(2.5*r),y,r*2,r*2); // circulo branco de raio r, é o circulo menor
fill(0);
ellipse(x-(2.5*r),y,r*2,r*2); // circulo preto de raio r, é o circulo menor
}
void setup(){
size(1000,600);
largura = width;
altura = height;
for (int i = 0; i < 100; i++){
yinYang(random(5,20),random(largura),random(altura));
}
}
O resultado em imagem é algo próximo disso.
Sou - Samuel Lincoln -
Sou um aluno do Curso de Sistemas e Mídias Digitais da Universidade Federal do Ceará (UFC). Já estudei Matemática (bacharelado) e Matemática industrial, na mesma universidade. Trabalho como editor de vídeos do Laboratório de Mídias Eletrônicas, vinculada a Universidade Virtual (vinculada a UFC).