Advertisement
bethdps

Trabalho I

Oct 2nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.00 KB | None | 0 0
  1. enum Paleta {
  2.   paleta1,
  3.   paleta2,
  4.   paleta3
  5. }
  6.  
  7. //Paleta de cores
  8. int [] cores1;
  9. int [] cores2;
  10. int [] cores3;
  11. int corUs = 0;
  12. int [] usadas = {-1,-1,-1,-1};
  13.  
  14. //Váriaveis globais que também podem ser passadas diretamente na função
  15. int tamanhoQuadrado = 300;
  16. int quantidadeDeCores = 3;
  17. boolean linhasDivisorias = t;
  18.  
  19. PImage texture;
  20.  
  21. void setup(){
  22.   preencherCores();
  23.   size(1200, 600);
  24.   texture = loadImage("texture.png");
  25.   drawArt(quantidadeDeCores,Paleta.paleta1,linhasDivisorias);
  26. }
  27.  
  28. void drawArt(int quantidadeDeCores, Paleta paletaDeCor, boolean linhasDivisorias) {
  29.   //Sorteia as cores da arte
  30.   int corBackground = getNextColor();
  31.   corUs ++;
  32.   int corInterna = getNextColor();
  33.   corUs ++;
  34.   int corQuadrado = getNextColor();
  35.   corUs++;
  36.  
  37.   println(corBackground + " " + corInterna + " " + corQuadrado);
  38.   println(usadas);
  39.  
  40.   //Helper Variables
  41.   int[] paleta = getPaleta(paletaDeCor);
  42.   int []  coluna = {0,1,2,3};
  43.   int[] linha = {0,1};
  44.  
  45.   //Cria os quadrados principais
  46.   noStroke();
  47.   fill(color(paleta[corBackground]));
  48.   for (int l : linha) {
  49.     for(int c : coluna) {
  50.       rect(c*tamanhoQuadrado, l * tamanhoQuadrado, tamanhoQuadrado, tamanhoQuadrado);  
  51.     }  
  52.   }
  53.   //Cria as linhas divisórias
  54.   if(linhasDivisorias) {
  55.     stroke(color(paleta[corQuadrado]));
  56.     strokeWeight(2);
  57.     line(0,tamanhoQuadrado, 1200, tamanhoQuadrado);
  58.     for (int c : coluna) {
  59.       if (c != 0) {
  60.         if(c == 1) {
  61.           line(c * tamanhoQuadrado - 2, 0, c * tamanhoQuadrado - 2, 600);
  62.         }else {
  63.           line(c * tamanhoQuadrado + 2, 0, c * tamanhoQuadrado + 2, 600);
  64.         }
  65.       }
  66.     }
  67.   }
  68.   /**Forma os triângulos presente na obra,se tiver mais de 2 cores, os triângulos possuem
  69.   cores diferentes **/
  70.   noStroke();  
  71.   for (int l : linha) {
  72.     for(int c : coluna) {
  73.       if((c%2 == 0 && l % 2 == 0) || (c % 2 != 0 && l % 2 != 0)) {
  74.         fill(color(paleta[corQuadrado]));
  75.         triangle(c * tamanhoQuadrado + 12, l * tamanhoQuadrado + 68, c * tamanhoQuadrado + 68, (l + 1) * tamanhoQuadrado - 12, (c + 1) * tamanhoQuadrado - 12, (l+1) * tamanhoQuadrado - 68);
  76.        
  77.         if(quantidadeDeCores > 2) {
  78.           fill(color(paleta[corInterna]));
  79.         }
  80.         triangle(c * tamanhoQuadrado + 12, l * tamanhoQuadrado + 68, (c + 1) * tamanhoQuadrado - 68, l * tamanhoQuadrado + 12, (c + 1) * tamanhoQuadrado - 12, (l+1) * tamanhoQuadrado - 68);
  81.       }else {
  82.         fill(color(paleta[corQuadrado]));
  83.         triangle(c*tamanhoQuadrado + 68,(l + 1) * tamanhoQuadrado - 12,c * tamanhoQuadrado + 12,l * tamanhoQuadrado + 68,(c+1) * tamanhoQuadrado - 68, l*tamanhoQuadrado + 12);
  84.        
  85.         if(quantidadeDeCores > 2) {
  86.           fill(color(paleta[corInterna]));
  87.         }
  88.         triangle(c*tamanhoQuadrado + 68,(l + 1) * tamanhoQuadrado - 12,(c + 1) * tamanhoQuadrado - 12,(l + 1) * tamanhoQuadrado - 68,(c+1) * tamanhoQuadrado - 68, l*tamanhoQuadrado + 12);
  89.       }
  90.     }
  91.     //Carrega a textura do quadro
  92.     tint(255, 25);
  93.     image(texture,0,0);
  94.   }
  95. }
  96.  
  97. //Sorteia uma cor aleatória na paleta
  98. int getNextColor(){
  99.   int random;
  100.   do {
  101.     random = floor(random(3));
  102.   }while(contains(random));
  103.   println("Random : " + random);
  104.   usadas[corUs] = random;
  105.   return random;
  106. }
  107.  
  108. boolean contains(int num) {
  109.   for (int i : usadas) {
  110.     if(num == i){
  111.       return true;
  112.     }
  113.   }
  114.   return false;
  115. }
  116.  
  117. //Função para retorna a paleta de cores escolhida
  118. int[] getPaleta(Paleta a){
  119.   switch (a) {
  120.     case paleta1:
  121.       return cores1;
  122.      case paleta2:
  123.        return cores2;
  124.      case paleta3:
  125.        return cores3;
  126.   }
  127.   return new int[1];
  128. }
  129.  
  130. //Cores das paletas, cada arrray representa um paleta
  131. void preencherCores() {
  132.   cores1 = new int[3];
  133.   cores2 = new int[3];
  134.   cores3 = new int[3];
  135.  
  136.   cores1[0] = #7b252f;
  137.   cores1[1] = #e25034;
  138.   cores1[2] = #f0e7d2;
  139.  
  140.   cores2[0] = #3e3730;
  141.   cores2[1] = #f2e1bf;
  142.   cores2[2] = #51505b;
  143.  
  144.   cores3[0] = #360b05;
  145.   cores3[1] = #d8e2d4;
  146.   cores3[2] = #050801;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement