Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int [][] cores;
- int paleta;
- void setup(){
- size(800,800);
- inicializarCores();
- paleta = ceil(random(2));
- int random = round(random(1000));
- //noStroke();
- if(random%2 == 0){
- desenho1();
- }else{
- desenho2();
- }
- }
- void draw(){
- }
- void desenho1(){
- drawQuad(0,false,0);
- drawQuad(1,true,0);
- drawQuad(2,false,0);
- drawQuad(3,true,0);
- //Linha 2
- drawQuad(0,true,1);
- drawQuad(1,false,1);
- drawQuad(2,true,1);
- drawQuad(3,false,1);
- //Linha 3
- drawQuad(0,false,2);
- drawQuad(1,true,2);
- drawQuad(2,false,2);
- drawQuad(3,true,2);
- //Linha 4
- drawQuad(0,true,3);
- drawQuad(1,false,3);
- drawQuad(2,true,3);
- drawQuad(3,false,3);
- }
- void drawQuad(int quadrante, boolean mirrored, int quadY){
- embaralharCores();
- int cor = 0;
- fill(cores[paleta][cor]);
- cor++;
- rect(200*quadrante,200*quadY,200,200);
- int bordY = 200 * quadY;
- int bordaQuad = 200 + 200 * quadrante;
- int bordX = 200 * quadrante;
- if(mirrored){
- for(int i = 0; i < 4; i++){
- //coresUsadas[coresSorteadas] = cor;
- //coresSorteadas ++;
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX,(200 + bordY) - 50*i,bordX,bordY,bordX+ 160 - 40 * i,bordY);
- }
- for(int j = 0; j < 4; j++){
- //coresUsadas[coresSorteadas] = cor;
- //coresSorteadas ++;
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX + 40 + 40*j, 200 + bordY,bordX+200, bordY + 50*j, bordX*2 + 200,200 + bordY);
- }
- }else{
- for(int i = 0; i < 4; i++){
- //coresUsadas[coresSorteadas] = cor;
- //coresSorteadas ++;
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX,200 + bordY,bordX,bordY + 50*i,200*quadrante + 160 - 40*i,200 + bordY);
- }
- for(int j = 0; j < 4; j++){
- //coresUsadas[coresSorteadas] = cor;
- //coresSorteadas ++;
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX + 40 + 40*j,bordY,bordaQuad,bordY + 200 - 50*j,bordaQuad,bordY);
- }
- }
- }
- void desenho2(){
- //Primeira linha
- drawQuad2(0,true,0,false);
- drawQuad2(1,false,0,true);
- drawQuad2(2,true,0,true);
- drawQuad2(3,true,0,false);
- //Segunda linha
- drawQuad2(0,false,1,true);
- drawQuad2(1,false,1,true);
- drawQuad2(2,true,1,true);
- drawQuad2(3,true,1,true);
- //Terceira linha
- drawQuad2(0,true,2,true);
- drawQuad2(1,true,2,true);
- drawQuad2(2,false,2,true);
- drawQuad2(3,false,2,true);
- //Quarta linha
- drawQuad2(0,true,3,false);
- drawQuad2(1,true,3,true);
- drawQuad2(2,false,3,true);
- drawQuad2(3,true,3,false);
- }
- //variavel tipo, se verdadeira, desenha quadrante apenas com 2 triangulos
- void drawQuad2(int quadrante, boolean mirrored, int quadY, boolean tipo){
- int bordX = 200 * quadrante;
- int bordY = 200 * quadY;
- int cor = 0;
- embaralharCores();
- if(!tipo){
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200+ bordY, bordX, bordY, 100 + bordX, 100 + bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, bordY, 200 + bordX, bordY, 100 + bordX, 100 + bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200+ bordY, quadrante*200, bordY, 100 + bordX, 100+ bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(100 + bordX, 100 + bordY, 200 + bordX, bordY, 200 + bordX, 200+ bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200+ bordY, 100+ bordX, 100+ bordY, 200 + bordX, 200+ bordY);
- }else{
- if(mirrored){
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, 200 + bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
- }else{
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, bordY);
- fill(cores[paleta][cor]);
- cor ++;
- triangle(bordX, 200 + bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
- }
- }
- }
- int sorteaCor(){
- int selected = ceil(random(9));
- return selected;
- }
- void inicializarCores(){
- cores = new int[3][10];
- cores[0][0] = #2A264D;
- cores[0][1] = #D24D2C;
- cores[0][2] = #E0C2BC;
- cores[0][3] = #3A7F59;
- cores[0][4] = #2C89CA;
- cores[0][5] = #D0AE25;
- cores[0][6] = #E1DFDE;
- cores[0][7] = #915B49;
- cores[0][8] = #808A93;
- cores[0][9] = #EEF4F4;
- cores[1][0] = #D1DAE2;
- cores[1][1] = #2836C6;
- cores[1][2] = #E56410;
- cores[1][3] = #DBB3B2;
- cores[1][4] = #CD2F20;
- cores[1][5] = #2F2C25;
- cores[0][6] = #604A81;
- cores[1][7] = #E3B70D;
- cores[1][8] = #489152;
- cores[1][9] = #BD8358;
- cores[2][0] = #0E0908;
- cores[2][1] = #C9AD94;
- cores[2][2] = #F7F6F4;
- cores[2][3] = #AF3615;
- cores[2][4] = #606064;
- cores[2][5] = #1A195A;
- cores[2][6] = #EFC8B6;
- cores[2][7] = #EDC01F;
- cores[2][8] = #345E3D;
- cores[2][9] = #DEBD52;
- }
- // Embaralha as cores de maneira aleatória
- // http://stackoverflow.com/questions/1519736/random-shuffling-of-an-array
- void embaralharCores(){
- int index;
- for (int i = cores[paleta].length - 1; i > 0; i--)
- {
- index = round(random(i));
- if (index != i)
- {
- cores[paleta][index] ^= cores[paleta][i];
- cores[paleta][i] ^= cores[paleta][index];
- cores[paleta][index] ^= cores[paleta][i];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement