> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://dflab.sketchpad.cc/sp/pad/view/ro.WmIDLahZI63/rev.3236
 * 
 * authors: 
 *   
 *   Laura Ferreira

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



// This sketch builds on a prior work, "Madalena Reis - 01", created by Madalena Reis
// http://dflab.sketchpad.cc/sp/pad/view/ro.9Nc7bNRxkRZMXg/rev.1315

int contador = 0;
int count = 0 ;

// valores das linhas

float linha1x = 150,  linha1y = 300;
float linha2x = 175,  linha2y = 350;
float linha3x = 250,  linha3xx = 400,  linha3y = 300;
float linha4x = 220,  linha4xx = 400,  linha4y = 350;

float linha1xr = 150,  linha1yr = 300;
float linha2xr = 175,  linha2yr = 350;
float linha3xr = 250,  linha3xxr = 400, linha3yr = 300;
float linha4xr = 220,  linha4xxr = 400, linha4yr= 350;

// valores das cores
int corum;            
int cordois;           
int cortres;          

int corquatro;
int corcinco;
int corseis;

int corsete;
int coroito;
int cornove; 

int cordez;
int coronze;
int cordoze;

void setup() {
    size (400, 400);
    background (255);
    frameRate (15);
}

void draw() {
// para limpar a tela a cada frame
    background (255); 

// dar deslocamento as linhas
// se o resto da divisao do contador por 1 for 0, o que é sempre verdade //(&&), e o contador for menor que dez, aplica-se o descolamento das linhas 

    if ((count % 1 == 0 && count <30)) { 
        linha1x -= 5;
        linha1y -= 10;
        linha2x -= 5;
        linha2y -= 10;
        linha3x += 5;
        linha3xx +=5;
        linha3y -= 1;
        linha4x +=5;
        linha4xx +=5;
        linha4y -=1;
    } 
 // se uma das condiçoes do if falhar, entao é porque chegamos ao limite do //deslocamento, logo temos de reiniciar os valores
    else {
        linha1x = linha1xr;
        linha1y = linha1yr;
        linha2x = linha2xr;
        linha2y = linha2yr;
        linha3x = linha3xr;
        linha3xx = linha3xxr;
        linha3y = linha3yr;
        linha4x = linha4xr;
        linha4xx = linha4xxr;
        linha4y = linha4yr;
        count = 0;
    }
        
        
    
// triangulo de fundo
    noStroke();
    fill(0);
    triangle (200,0, 0,400, 400,400);
    
// triangulo grande
    fill(255);
    triangle(200,400, 90,220, 310,220);
    
// triangulo pequeno
    triangle (200,152, 155,90, 245,90);
    
//triangulo medio
    fill (corum, cordois, cortres);
    triangle (200,220, 122,152, 276,152);
    
//triangulos de baixo, esquerda , direita
    fill(corquatro, corcinco, corseis);
    triangle (100,400, 50,300, 140,300);
    fill(corsete, coroito, cornove);
    triangle (300,400, 350,300, 259,300);
    
// triagulos do canto, esquerdo, direito
    fill (cordez, coronze, cordoze);
    triangle (0,0, 100,0, 0,200);
    triangle (400,0, 300,0, 400,200);
    
   
// linhas da esquerda para a direita   
     strokeWeight (2);
     stroke (0);
 
//linha1
    line (linha1x,0, 0,linha1y);
//linha2
    line (linha2x,0, 0,linha2y);
//linha3    
    line (linha3x,0, linha3xx,linha3y);
//linha4
    line (linha4x,0, linha4xx,linha4y);
    count ++; // adicionar uma unidade ao count, para que as rectas estejam                                  //sempre em movimento
}

void mousePressed () { 
   
   if (contador == 0 ) {   
    corum = random (255);
    cordois = random (255);
    cortres = random (255); 
    
 } 
   
   if (contador == 1) { 
    corquatro = random (255);
    corcinco = random (255);
    corseis = random (255); 
    
}
   
   if (contador == 2) { 
    corsete = random (255);
    coroito = random (255);
    cornove = random (255); 
    
 }
    
    if (contador == 3) {
    cordez = random (255);
    coronze = random (255);
    cordoze = random (255); 
    
}

// se for menor menor que tres aumenta o contador, senao volta ao zer«o (a // primeira cor para o triangulo)
if 
    (contador < 3 ){ 
        contador ++ ; 
}
 else { contador = 0; 
}
}