Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum Paleta {
- paleta1,
- paleta2,
- paleta3
- }
- //Paleta de cores
- int [] cores1;
- int [] cores2;
- int [] cores3;
- int corUs = 0;
- int [] usadas = {-1,-1,-1,-1};
- //Váriaveis globais que também podem ser passadas diretamente na função
- int tamanhoQuadrado = 300;
- int quantidadeDeCores = 3;
- boolean linhasDivisorias = t;
- PImage texture;
- void setup(){
- preencherCores();
- size(1200, 600);
- texture = loadImage("texture.png");
- drawArt(quantidadeDeCores,Paleta.paleta1,linhasDivisorias);
- }
- void drawArt(int quantidadeDeCores, Paleta paletaDeCor, boolean linhasDivisorias) {
- //Sorteia as cores da arte
- int corBackground = getNextColor();
- corUs ++;
- int corInterna = getNextColor();
- corUs ++;
- int corQuadrado = getNextColor();
- corUs++;
- println(corBackground + " " + corInterna + " " + corQuadrado);
- println(usadas);
- //Helper Variables
- int[] paleta = getPaleta(paletaDeCor);
- int [] coluna = {0,1,2,3};
- int[] linha = {0,1};
- //Cria os quadrados principais
- noStroke();
- fill(color(paleta[corBackground]));
- for (int l : linha) {
- for(int c : coluna) {
- rect(c*tamanhoQuadrado, l * tamanhoQuadrado, tamanhoQuadrado, tamanhoQuadrado);
- }
- }
- //Cria as linhas divisórias
- if(linhasDivisorias) {
- stroke(color(paleta[corQuadrado]));
- strokeWeight(2);
- line(0,tamanhoQuadrado, 1200, tamanhoQuadrado);
- for (int c : coluna) {
- if (c != 0) {
- if(c == 1) {
- line(c * tamanhoQuadrado - 2, 0, c * tamanhoQuadrado - 2, 600);
- }else {
- line(c * tamanhoQuadrado + 2, 0, c * tamanhoQuadrado + 2, 600);
- }
- }
- }
- }
- /**Forma os triângulos presente na obra,se tiver mais de 2 cores, os triângulos possuem
- cores diferentes **/
- noStroke();
- for (int l : linha) {
- for(int c : coluna) {
- if((c%2 == 0 && l % 2 == 0) || (c % 2 != 0 && l % 2 != 0)) {
- fill(color(paleta[corQuadrado]));
- triangle(c * tamanhoQuadrado + 12, l * tamanhoQuadrado + 68, c * tamanhoQuadrado + 68, (l + 1) * tamanhoQuadrado - 12, (c + 1) * tamanhoQuadrado - 12, (l+1) * tamanhoQuadrado - 68);
- if(quantidadeDeCores > 2) {
- fill(color(paleta[corInterna]));
- }
- triangle(c * tamanhoQuadrado + 12, l * tamanhoQuadrado + 68, (c + 1) * tamanhoQuadrado - 68, l * tamanhoQuadrado + 12, (c + 1) * tamanhoQuadrado - 12, (l+1) * tamanhoQuadrado - 68);
- }else {
- fill(color(paleta[corQuadrado]));
- triangle(c*tamanhoQuadrado + 68,(l + 1) * tamanhoQuadrado - 12,c * tamanhoQuadrado + 12,l * tamanhoQuadrado + 68,(c+1) * tamanhoQuadrado - 68, l*tamanhoQuadrado + 12);
- if(quantidadeDeCores > 2) {
- fill(color(paleta[corInterna]));
- }
- triangle(c*tamanhoQuadrado + 68,(l + 1) * tamanhoQuadrado - 12,(c + 1) * tamanhoQuadrado - 12,(l + 1) * tamanhoQuadrado - 68,(c+1) * tamanhoQuadrado - 68, l*tamanhoQuadrado + 12);
- }
- }
- //Carrega a textura do quadro
- tint(255, 25);
- image(texture,0,0);
- }
- }
- //Sorteia uma cor aleatória na paleta
- int getNextColor(){
- int random;
- do {
- random = floor(random(3));
- }while(contains(random));
- println("Random : " + random);
- usadas[corUs] = random;
- return random;
- }
- boolean contains(int num) {
- for (int i : usadas) {
- if(num == i){
- return true;
- }
- }
- return false;
- }
- //Função para retorna a paleta de cores escolhida
- int[] getPaleta(Paleta a){
- switch (a) {
- case paleta1:
- return cores1;
- case paleta2:
- return cores2;
- case paleta3:
- return cores3;
- }
- return new int[1];
- }
- //Cores das paletas, cada arrray representa um paleta
- void preencherCores() {
- cores1 = new int[3];
- cores2 = new int[3];
- cores3 = new int[3];
- cores1[0] = #7b252f;
- cores1[1] = #e25034;
- cores1[2] = #f0e7d2;
- cores2[0] = #3e3730;
- cores2[1] = #f2e1bf;
- cores2[2] = #51505b;
- cores3[0] = #360b05;
- cores3[1] = #d8e2d4;
- cores3[2] = #050801;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement