Seguindo a regra de criação citada nos slides das aulas, este código cria símbolos yin-yang.
A Regra de Criação é a seguinte:
As duas metades de circulo grandes tem 5 módulos de raio.
Os dois círculos que formam as curvas tem 2.5 módulos de raio, e e posicionada no centro X e Y mais (ou menos) 2.5 módulos.
Os pequenos círculos ficam no meio dos dois círculos anteriores e possuem raio de 1 módulo.
A primeira função cria um simbolo na posição passada(no caso X e Y no Mouse) com módulo fixo de 40; a segunda função faz o mesmo mas recebe um modulo dinâmico(no caso posição X do mouse dividido por 16); A terceira função faz o mesmo da segunda, com a diferença que ele gera três números randômicos de 0 até 255 e guarda em três posições de um vetor chamado cores1, e faz o mesmo para um vetor chamado cores2, e os números desse vetor são usados para dar cores diferentes ao simbolo, mas que ele continue fazendo sentido.
Os dois círculos que formam as curvas tem 2.5 módulos de raio, e e posicionada no centro X e Y mais (ou menos) 2.5 módulos.
Os pequenos círculos ficam no meio dos dois círculos anteriores e possuem raio de 1 módulo.
A primeira função cria um simbolo na posição passada(no caso X e Y no Mouse) com módulo fixo de 40; a segunda função faz o mesmo mas recebe um modulo dinâmico(no caso posição X do mouse dividido por 16); A terceira função faz o mesmo da segunda, com a diferença que ele gera três números randômicos de 0 até 255 e guarda em três posições de um vetor chamado cores1, e faz o mesmo para um vetor chamado cores2, e os números desse vetor são usados para dar cores diferentes ao simbolo, mas que ele continue fazendo sentido.
Output da Ultima Função(yinYang3):
Código-fonte:
int modulo = 40;
void setup() {
size(400,400);
}
void draw(){
//background(205);
//yinYang(mouseX,mouseY);
yinYang2(mouseX,mouseY,mouseX/16);
//yinYang3(mouseX,mouseY,mouseX/16);
}
void yinYang(int X,int Y){
noStroke();
//Circulo Maior
fill(255);
arc(X, Y, 2*5*modulo, 2*5*modulo, PI,TWO_PI, OPEN);
fill(0);
arc(X, Y, 2*5*modulo, 2*5*modulo, 0, PI, OPEN);
//Circulos que formam as curvas
fill(255);
ellipse(int(X-2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
fill(0);
ellipse(int(X+2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
//Circulos Pequenos
fill(0);
ellipse(int(X-2.5*modulo),Y,2*modulo,2*modulo);
fill(255);
ellipse(int(X+2.5*modulo),Y,2*modulo,2*modulo);
}
void yinYang2(int X,int Y,int modulo){
noStroke();
//Circulo Maior
fill(255);
arc(X, Y, 2*5*modulo, 2*5*modulo, PI,TWO_PI, OPEN);
fill(0);
arc(X, Y, 2*5*modulo, 2*5*modulo, 0, PI, OPEN);
//Circulos que formam as curvas
fill(255);
ellipse(int(X-2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
fill(0);
ellipse(int(X+2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
//Circulos Pequenos
fill(0);
ellipse(int(X-2.5*modulo),Y,2*modulo,2*modulo);
fill(255);
ellipse(int(X+2.5*modulo),Y,2*modulo,2*modulo);
}
void yinYang3(int X,int Y,int modulo){
noStroke();
int[] cores1 = new int[3];
int[] cores2 = new int[3];
for(int cont=0;cont<3;cont++){
cores1[cont] = int(random(255));
cores2[cont] = int(random(255));
}
//Circulo Maior
fill(cores1[0],cores1[1],cores1[2]);
arc(X, Y, 2*5*modulo, 2*5*modulo, PI,TWO_PI, OPEN);
fill(cores2[0],cores2[1],cores2[2]);
arc(X, Y, 2*5*modulo, 2*5*modulo, 0, PI, OPEN);
//Circulos que formam as curvas
fill(cores1[0],cores1[1],cores1[2]);
ellipse(int(X-2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
fill(cores2[0],cores2[1],cores2[2]);
ellipse(int(X+2.5*modulo),Y,2*2.5*modulo,2*2.5*modulo);
//Circulos Pequenos
fill(cores2[0],cores2[1],cores2[2]);
ellipse(int(X-2.5*modulo),Y,2*modulo,2*modulo);
fill(cores1[0],cores1[1],cores1[2]);
ellipse(int(X+2.5*modulo),Y,2*modulo,2*modulo);
}
Nenhum comentário:
Postar um comentário