Advertisement
bethdps

Gerador Final

Jan 26th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.74 KB | None | 0 0
  1. import controlP5.*;
  2.  
  3.  
  4. ControlP5 cp5;
  5. DropdownList paletaCor, obra;
  6.  
  7. int gerando = 0;
  8.  
  9.  
  10.  
  11. int [][] cores;
  12. int paleta;
  13. void setup(){
  14.   size(800,800);
  15.   inicializarCores();
  16.   createGUI();
  17. }
  18.  
  19. void draw(){
  20.   if(gerando > 1){
  21.    
  22.   }else{
  23.     background(120);
  24.   }
  25. }
  26.  
  27. public void gerar() {
  28.   if(gerando >= 1){
  29.     createArt(floor(obra.getValue()), floor(paletaCor.getValue()));
  30.     cp5.setVisible(false);
  31.   }
  32.   gerando ++;
  33. }
  34.  
  35. void createGUI() {
  36.  
  37.   cp5 = new ControlP5(this);
  38.  
  39.   paletaCor = cp5.addDropdownList("paletas")
  40.     .setPosition(420, 132)
  41.     .setId(0)
  42.     ;
  43.   customize(paletaCor);
  44.  
  45.   obra = cp5.addDropdownList("obra")
  46.     .setPosition(300, 132)
  47.     .setId(1);
  48.     ;
  49.   customize(obra);
  50.  
  51.   cp5.addButton("gerar")
  52.      .setValue(0)
  53.      .setPosition(width/2-100,240)
  54.      .setSize(200,40)
  55.      ;
  56. }
  57.  
  58. void customize(DropdownList ddl) {
  59.   // a convenience function to customize a DropdownList
  60.   ddl.setBackgroundColor(color(0,45,90));
  61.   ddl.setItemHeight(20);
  62.   ddl.setBarHeight(15);
  63.  
  64.   if(ddl.getId() == 0) {
  65.     ddl.addItem("scheherazade",0);
  66.     ddl.addItem("rosewood",1);
  67.     ddl.addItem("seraphim",2);
  68.   }else{
  69.     ddl.addItem("modelo 1",0);
  70.     ddl.addItem("modelo 2",1);
  71.   }
  72.  
  73.  
  74.  
  75.   ddl.setColorBackground(color(0,45,90));
  76.   ddl.setColorActive(color(255, 128, 128));
  77. }
  78.  
  79.  
  80. void createArt(int i, int paletaEscolhida){
  81.   switch(i){
  82.     case 0:
  83.       paleta = paletaEscolhida;
  84.       desenho1();
  85.       break;
  86.     case 1:
  87.       paleta = paletaEscolhida;
  88.       desenho2();
  89.       break;
  90.     default:
  91.       background(120);
  92.   }
  93. }
  94.  
  95.  
  96. void desenho1(){
  97.   drawQuad(0,false,0);
  98.   drawQuad(1,true,0);
  99.   drawQuad(2,false,0);
  100.   drawQuad(3,true,0);
  101.   //Linha 2
  102.   drawQuad(0,true,1);
  103.   drawQuad(1,false,1);
  104.   drawQuad(2,true,1);
  105.   drawQuad(3,false,1);
  106.   //Linha 3
  107.   drawQuad(0,false,2);
  108.   drawQuad(1,true,2);
  109.   drawQuad(2,false,2);
  110.   drawQuad(3,true,2);
  111.   //Linha 4
  112.   drawQuad(0,true,3);
  113.   drawQuad(1,false,3);
  114.   drawQuad(2,true,3);
  115.   drawQuad(3,false,3);
  116. }
  117.  
  118. void drawQuad(int quadrante, boolean mirrored, int quadY){
  119.   embaralharCores();
  120.   int cor = 0;
  121.  
  122.   fill(cores[paleta][cor]);
  123.   cor++;
  124.   rect(200*quadrante,200*quadY,200,200);
  125.  
  126.   int bordY = 200 * quadY;
  127.  
  128.   int bordaQuad = 200 + 200 * quadrante;
  129.   int bordX = 200 * quadrante;
  130.   if(mirrored){
  131.     for(int i = 0; i < 4; i++){
  132.      
  133.       //coresUsadas[coresSorteadas] = cor;
  134.       //coresSorteadas ++;
  135.       fill(cores[paleta][cor]);
  136.       cor ++;
  137.       triangle(bordX,(200 + bordY) - 50*i,bordX,bordY,bordX+ 160 - 40 * i,bordY);
  138.     }
  139.     for(int j = 0; j < 4; j++){
  140.      
  141.       //coresUsadas[coresSorteadas] = cor;
  142.       //coresSorteadas ++;
  143.       fill(cores[paleta][cor]);
  144.       cor ++;
  145.       triangle(bordX + 40 + 40*j, 200 + bordY,bordX+200, bordY + 50*j, bordX*2 + 200,200 + bordY);
  146.     }
  147.   }else{
  148.     for(int i = 0; i < 4; i++){
  149.       //coresUsadas[coresSorteadas] = cor;
  150.       //coresSorteadas ++;
  151.       fill(cores[paleta][cor]);
  152.       cor ++;
  153.       triangle(bordX,200 + bordY,bordX,bordY + 50*i,200*quadrante + 160 - 40*i,200 + bordY);
  154.     }
  155.     for(int j = 0; j < 4; j++){
  156.       //coresUsadas[coresSorteadas] = cor;
  157.       //coresSorteadas ++;
  158.       fill(cores[paleta][cor]);
  159.       cor ++;
  160.       triangle(bordX + 40 + 40*j,bordY,bordaQuad,bordY + 200 - 50*j,bordaQuad,bordY);
  161.     }
  162.   }
  163.  
  164. }
  165.  
  166. void desenho2(){
  167.   //Primeira linha
  168.  
  169.   drawQuad2(0,true,0,false);
  170.   drawQuad2(1,false,0,true);
  171.   drawQuad2(2,true,0,true);
  172.   drawQuad2(3,true,0,false);
  173.   //Segunda linha
  174.  
  175.   drawQuad2(0,false,1,true);
  176.   drawQuad2(1,false,1,true);
  177.   drawQuad2(2,true,1,true);
  178.   drawQuad2(3,true,1,true);
  179.  
  180.   //Terceira linha
  181.  
  182.   drawQuad2(0,true,2,true);
  183.   drawQuad2(1,true,2,true);
  184.   drawQuad2(2,false,2,true);
  185.   drawQuad2(3,false,2,true);
  186.  
  187.   //Quarta linha
  188.  
  189.   drawQuad2(0,true,3,false);
  190.   drawQuad2(1,true,3,true);
  191.   drawQuad2(2,false,3,true);
  192.   drawQuad2(3,true,3,false);
  193.  
  194. }
  195.  
  196. //variavel tipo, se verdadeira, desenha quadrante apenas com 2 triangulos
  197. void drawQuad2(int quadrante, boolean mirrored, int quadY, boolean tipo){
  198.  
  199.   int bordX = 200 * quadrante;
  200.   int bordY = 200 * quadY;
  201.   int cor = 0;
  202.   embaralharCores();
  203.   if(!tipo){
  204.     fill(cores[paleta][cor]);
  205.     cor ++;
  206.     triangle(bordX, 200+ bordY, bordX, bordY, 100 + bordX, 100 + bordY);
  207.     fill(cores[paleta][cor]);
  208.     cor ++;
  209.     triangle(bordX, bordY, 200 + bordX, bordY, 100 + bordX, 100 + bordY);
  210.     fill(cores[paleta][cor]);
  211.     cor ++;
  212.     triangle(bordX, 200+ bordY, quadrante*200, bordY, 100 + bordX, 100+ bordY);
  213.     fill(cores[paleta][cor]);
  214.     cor ++;
  215.     triangle(100 + bordX, 100 + bordY, 200 + bordX, bordY, 200 + bordX, 200+ bordY);
  216.     fill(cores[paleta][cor]);
  217.     cor ++;
  218.     triangle(bordX, 200+ bordY, 100+ bordX, 100+ bordY, 200 + bordX, 200+ bordY);
  219.   }else{
  220.     if(mirrored){
  221.       fill(cores[paleta][cor]);
  222.       cor ++;
  223.       triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, 200 + bordY);
  224.       fill(cores[paleta][cor]);
  225.       cor ++;
  226.       triangle(bordX, bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
  227.     }else{
  228.       fill(cores[paleta][cor]);
  229.       cor ++;
  230.       triangle(bordX, 200 + bordY, bordX, bordY, 200 + bordX, bordY);
  231.       fill(cores[paleta][cor]);
  232.       cor ++;
  233.       triangle(bordX, 200 + bordY, 200 + bordX, bordY, 200 + bordX, 200 + bordY);
  234.     }
  235.   }
  236. }
  237.  
  238.  
  239. int sorteaCor(){
  240.   int selected = ceil(random(9));
  241.   return selected;
  242. }
  243.  
  244. void inicializarCores(){
  245.   cores = new int[3][10];
  246.  
  247.   cores[0][0] =  #2A264D;
  248.   cores[0][1] =  #D24D2C;
  249.   cores[0][2] =  #E0C2BC;
  250.   cores[0][3] =  #3A7F59;
  251.   cores[0][4] =  #2C89CA;
  252.   cores[0][5] =  #D0AE25;
  253.   cores[0][6] =  #E1DFDE;
  254.   cores[0][7] =  #915B49;
  255.   cores[0][8] =  #808A93;
  256.   cores[0][9] =  #EEF4F4;
  257.  
  258.   cores[1][0] =  #D1DAE2;
  259.   cores[1][1] =  #2836C6;
  260.   cores[1][2] =  #E56410;
  261.   cores[1][3] =  #DBB3B2;
  262.   cores[1][4] =  #CD2F20;
  263.   cores[1][5] =  #2F2C25;
  264.   cores[0][6] =  #604A81;
  265.   cores[1][7] =  #E3B70D;
  266.   cores[1][8] =  #489152;
  267.   cores[1][9] =  #BD8358;
  268.  
  269.   cores[2][0] =  #0E0908;
  270.   cores[2][1] =  #C9AD94;
  271.   cores[2][2] =  #F7F6F4;
  272.   cores[2][3] =  #AF3615;
  273.   cores[2][4] =  #606064;
  274.   cores[2][5] =  #1A195A;
  275.   cores[2][6] =  #EFC8B6;
  276.   cores[2][7] =  #EDC01F;
  277.   cores[2][8] =  #345E3D;
  278.   cores[2][9] =  #DEBD52;
  279. }
  280.  
  281. // Embaralha as cores de maneira aleatΓ³ria
  282. // http://stackoverflow.com/questions/1519736/random-shuffling-of-an-array
  283. void embaralharCores(){
  284.   int index;
  285.     for (int i = cores[paleta].length - 1; i > 0; i--)
  286.     {
  287.         index = round(random(i));
  288.         if (index != i)
  289.         {
  290.             cores[paleta][index] ^= cores[paleta][i];
  291.             cores[paleta][i] ^= cores[paleta][index];
  292.             cores[paleta][index] ^= cores[paleta][i];
  293.         }
  294.     }
  295. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement