Advertisement
bethdps

Trabalho I

Oct 17th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.41 KB | None | 0 0
  1. int [][] cores;
  2. int paleta;
  3. void setup(){
  4.   size(800,800);
  5.   inicializarCores();
  6.   paleta = ceil(random(2));
  7.  
  8.   int random = round(random(1000));
  9.   //noStroke();
  10.   if(random%2 == 0){
  11.     desenho1();
  12.   }else{
  13.     desenho2();
  14.   }
  15. }
  16.  
  17. void draw(){
  18.  
  19. }
  20.  
  21. void desenho1(){
  22.   drawQuad(0,false,0);
  23.   drawQuad(1,true,0);
  24.   drawQuad(2,false,0);
  25.   drawQuad(3,true,0);
  26.   //Linha 2
  27.   drawQuad(0,true,1);
  28.   drawQuad(1,false,1);
  29.   drawQuad(2,true,1);
  30.   drawQuad(3,false,1);
  31.   //Linha 3
  32.   drawQuad(0,false,2);
  33.   drawQuad(1,true,2);
  34.   drawQuad(2,false,2);
  35.   drawQuad(3,true,2);
  36.   //Linha 4
  37.   drawQuad(0,true,3);
  38.   drawQuad(1,false,3);
  39.   drawQuad(2,true,3);
  40.   drawQuad(3,false,3);
  41. }
  42. void drawQuad(int quadrante, boolean mirrored, int quadY){
  43.   embaralharCores();
  44.   int cor = 0;
  45.  
  46.   fill(cores[paleta][cor]);
  47.   cor++;
  48.   rect(200*quadrante,200*quadY,200,200);
  49.  
  50.   int bordY = 200 * quadY;
  51.  
  52.   int bordaQuad = 200 + 200 * quadrante;
  53.   int bordX = 200 * quadrante;
  54.   if(mirrored){
  55.     for(int i = 0; i < 4; i++){
  56.      
  57.       //coresUsadas[coresSorteadas] = cor;
  58.       //coresSorteadas ++;
  59.       fill(cores[paleta][cor]);
  60.       cor ++;
  61.       triangle(bordX,(200 + bordY) - 50*i,bordX,bordY,bordX+ 160 - 40 * i,bordY);
  62.     }
  63.     for(int j = 0; j < 4; j++){
  64.      
  65.       //coresUsadas[coresSorteadas] = cor;
  66.       //coresSorteadas ++;
  67.       fill(cores[paleta][cor]);
  68.       cor ++;
  69.       triangle(bordX + 40 + 40*j, 200 + bordY,bordX+200, bordY + 50*j, bordX*2 + 200,200 + bordY);
  70.     }
  71.   }else{
  72.     for(int i = 0; i < 4; i++){
  73.       //coresUsadas[coresSorteadas] = cor;
  74.       //coresSorteadas ++;
  75.       fill(cores[paleta][cor]);
  76.       cor ++;
  77.       triangle(bordX,200 + bordY,bordX,bordY + 50*i,200*quadrante + 160 - 40*i,200 + bordY);
  78.     }
  79.     for(int j = 0; j < 4; j++){
  80.       //coresUsadas[coresSorteadas] = cor;
  81.       //coresSorteadas ++;
  82.       fill(cores[paleta][cor]);
  83.       cor ++;
  84.       triangle(bordX + 40 + 40*j,bordY,bordaQuad,bordY + 200 - 50*j,bordaQuad,bordY);
  85.     }
  86.   }
  87.  
  88. }
  89.  
  90. void desenho2(){
  91.   //Primeira linha
  92.  
  93.   drawQuad2(0,true,0,false);
  94.   drawQuad2(1,false,0,true);
  95.   drawQuad2(2,true,0,true);
  96.   drawQuad2(3,true,0,false);
  97.   //Segunda linha
  98.  
  99.   drawQuad2(0,false,1,true);
  100.   drawQuad2(1,false,1,true);
  101.   drawQuad2(2,true,1,true);
  102.   drawQuad2(3,true,1,true);
  103.  
  104.   //Terceira linha
  105.  
  106.   drawQuad2(0,true,2,true);
  107.   drawQuad2(1,true,2,true);
  108.   drawQuad2(2,false,2,true);
  109.   drawQuad2(3,false,2,true);
  110.  
  111.   //Quarta linha
  112.  
  113.   drawQuad2(0,true,3,false);
  114.   drawQuad2(1,true,3,true);
  115.   drawQuad2(2,false,3,true);
  116.   drawQuad2(3,true,3,false);
  117.  
  118. }
  119.  
  120. //variavel tipo, se verdadeira, desenha quadrante apenas com 2 triangulos
  121. void drawQuad2(int quadrante, boolean mirrored, int quadY, boolean tipo){
  122.  
  123.   int bordX = 200 * quadrante;
  124.   int bordY = 200 * quadY;
  125.   int cor = 0;
  126.   embaralharCores();
  127.   if(!tipo){
  128.     fill(cores[paleta][cor]);
  129.     cor ++;
  130.     triangle(bordX, 200+ bordY, bordX, bordY, 100 + bordX, 100 + bordY);
  131.     fill(cores[paleta][cor]);
  132.     cor ++;
  133.     triangle(bordX, bordY, 200 + bordX, bordY, 100 + bordX, 100 + bordY);
  134.     fill(cores[paleta][cor]);
  135.     cor ++;
  136.     triangle(bordX, 200+ bordY, quadrante*200, bordY, 100 + bordX, 100+ bordY);
  137.     fill(cores[paleta][cor]);
  138.     cor ++;
  139.     triangle(100 + bordX, 100 + bordY, 200 + bordX, bordY, 200 + bordX, 200+ bordY);
  140.     fill(cores[paleta][cor]);
  141.     cor ++;
  142.     triangle(bordX, 200+ bordY, 100+ bordX, 100+ bordY, 200 + bordX, 200+ bordY);
  143.   }else{
  144.     if(mirrored){
  145.       fill(cores[paleta][cor]);
  146.       cor ++;
  147.       triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, 200 + bordY);
  148.       fill(cores[paleta][cor]);
  149.       cor ++;
  150.       triangle(bordX, bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
  151.     }else{
  152.       fill(cores[paleta][cor]);
  153.       cor ++;
  154.       triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, bordY);
  155.       fill(cores[paleta][cor]);
  156.       cor ++;
  157.       triangle(bordX, 200 + bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
  158.     }
  159.   }
  160. }
  161.  
  162.  
  163. int sorteaCor(){
  164.   int selected = ceil(random(9));
  165.   return selected;
  166. }
  167.  
  168. void inicializarCores(){
  169.   cores = new int[3][10];
  170.  
  171.   cores[0][0] =  #2A264D;
  172.   cores[0][1] =  #D24D2C;
  173.   cores[0][2] =  #E0C2BC;
  174.   cores[0][3] =  #3A7F59;
  175.   cores[0][4] =  #2C89CA;
  176.   cores[0][5] =  #D0AE25;
  177.   cores[0][6] =  #E1DFDE;
  178.   cores[0][7] =  #915B49;
  179.   cores[0][8] =  #808A93;
  180.   cores[0][9] =  #EEF4F4;
  181.  
  182.   cores[1][0] =  #D1DAE2;
  183.   cores[1][1] =  #2836C6;
  184.   cores[1][2] =  #E56410;
  185.   cores[1][3] =  #DBB3B2;
  186.   cores[1][4] =  #CD2F20;
  187.   cores[1][5] =  #2F2C25;
  188.   cores[0][6] =  #604A81;
  189.   cores[1][7] =  #E3B70D;
  190.   cores[1][8] =  #489152;
  191.   cores[1][9] =  #BD8358;
  192.  
  193.   cores[2][0] =  #0E0908;
  194.   cores[2][1] =  #C9AD94;
  195.   cores[2][2] =  #F7F6F4;
  196.   cores[2][3] =  #AF3615;
  197.   cores[2][4] =  #606064;
  198.   cores[2][5] =  #1A195A;
  199.   cores[2][6] =  #EFC8B6;
  200.   cores[2][7] =  #EDC01F;
  201.   cores[2][8] =  #345E3D;
  202.   cores[2][9] =  #DEBD52;
  203. }
  204.  
  205. // Embaralha as cores de maneira aleatória
  206. // http://stackoverflow.com/questions/1519736/random-shuffling-of-an-array
  207. void embaralharCores(){
  208.   int index;
  209.     for (int i = cores[paleta].length - 1; i > 0; i--)
  210.     {
  211.         index = round(random(i));
  212.         if (index != i)
  213.         {
  214.             cores[paleta][index] ^= cores[paleta][i];
  215.             cores[paleta][i] ^= cores[paleta][index];
  216.             cores[paleta][index] ^= cores[paleta][i];
  217.         }
  218.     }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement