header Tt

 

class tetromino  "Tt"                 ga naar de  draaiende tetromino T animatie           terug naar de inleiding

 

class Tt extends Vormen { 
   
//argumenten van de constructor   
//1) grootte, 2) draaipunt, 3) x positie, 4) y positie,    
//5) hoek     6) vormkleur, 7) lijndikte, 8) lijnkleur    
   
//   1        2        3         4         5           6          7        8      
Tt(float n_, int d_, float x_, float y_, float hoek_, color c1_, float sw_, color c2_) {   
 super();   
 n = n_;   d = d_;  
 x = x_;   y = y_;    
 hoek = hoek_;  
 c1 = c1_; sw = sw_;  c2 = c2_;  
 }  
  
void display() {  
 fill(c1);  
 strokeWeight(sw);   
 stroke(c2);   
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek));   
 beginShape(); 
 if (d == 0) {vertex(-n/2,n);  vertex(-n/2,-0);vertex(-1.5*n,-0);vertex(-1.5*n,-n); 
              vertex(1.5*n,-n);vertex(1.5*n,0);vertex(n/2,0);  vertex(n/2,n);}                  
 if (d == 1) {vertex(0,0);     vertex(0,-n);   vertex(-n,-n);  vertex(-n,-2*n); 
              vertex(2*n,-2*n);vertex(2*n,-n); vertex(n,-n);   vertex(n,0);}               
 if (d == 2) {vertex(0,n);     vertex(0,0);    vertex(-n,0);   vertex(-n,-n); 
              vertex(2*n,-n);  vertex(2*n,0);  vertex(n,0);    vertex(n,n);}               
 if (d == 3) {vertex(n,n);     vertex(n,0);    vertex(0,0);    vertex(0,-n); 
              vertex(3*n,-n);  vertex(3*n,0);  vertex(2*n,0);  vertex(2*n,n);}                 
 if (d == 4) {vertex(n,2*n);   vertex(n,n);    vertex(0,n);    vertex(0,0); 
              vertex(3*n,0);   vertex(3*n,n);  vertex(2*n,n);  vertex(2*n,2*n);}                 
 if (d == 5) {vertex(-2*n,2*n);vertex(-2*n,n); vertex(-3*n,n); vertex(-3*n,0); 
              vertex(0,0);     vertex(0,n);    vertex(-n,n);   vertex(-n,2*n);}                
 if (d == 6) {vertex(-2*n,n);  vertex(-2*n,0); vertex(-3*n,0); vertex(-3*n,-n); 
              vertex(0,-n);    vertex(0,0);    vertex(-n,0);   vertex(-n,n);}              
 if (d == 7) {vertex(-n,n);    vertex(-n,0);   vertex(-2*n,0); vertex(-2*n,-n); 
              vertex(n,-n);    vertex(n,0);    vertex(0,0);    vertex(0,n);}                 
 if (d == 8) {vertex(-n,0);    vertex(-n,-n);  vertex(-2*n,-n);vertex(-2*n,-2*n); 
              vertex(n,-2*n);  vertex(n,-n);   vertex(0,-n);   vertex(0,0);}                          
 endShape(CLOSE);  
 popMatrix();  
 }  
}
 
voorbeeld schets met objecten van de class tetromino "Tt"     
de schets maakt ook gebruik van object methodes van de superclass "Vormen"
 

enkele toetsfuncties

toets 1 setup van de start situatie
toets 2 random kleuren van de tetromino's en de lijnen, lijndikte sw = 40 en alfa = 100
toets 3 random kleuren van de tetromino's en de lijnen, lijndikte sw = 40 en alfa = 200
toets s stopt, en met toets r start de animatie.
 
In de animatie is de  hoek van draaipunt 1 afgerond dit staat niet in de code.
 
 


Vormen [] vorm;  
 
void setup()  { 
size(780,560); 
//fullScreen(); 
float x = width/2; 
float y = height/2; 
float n = height/10; 
float sw = 2; 
 
  vorm = new Vormen[12]; 
//argumenten van de constructor   
//1) grootte, 2) draaipunt, 3) x positie, 4) y positie,    
//5) hoek     6) vormkleur, 7) lijndikte, 8) lijnkleur    
   
//                 1  2    3        4     5    6                 7     8      
  vorm[0] = new Tt(n, 8,  x-3.5*n, y-n,   0, color(#07F0EA,100), sw, color(0)); 
  vorm[1] = new Tt(n, 1,  x-n/2,   y-n,   0, color(#FC172A,100), sw, color(0)); 
  vorm[2] = new Tt(n, 1,  x+3.5*n, y-n,   0, color(#07F0EA,100), sw, color(0)); 
  vorm[3] = new Tt(n, 3,  x-3.5*n, y-n,   0, color(#85FF05,100), sw, color(0)); 
  vorm[4] = new Tt(n, 6,  x+3.5*n, y-n,   0, color(#85FF05,100), sw, color(0)); 
  vorm[5] = new Tt(n, 6,  x-3.5*n, y+n, 180, color(#85FF05,100), sw, color(0)); 
  vorm[6] = new Tt(n, 3,  x+3.5*n, y+n, 180, color(#85FF05,100), sw, color(0)); 
  vorm[7] = new Tt(n, 1,  x-3.5*n, y+n, 180, color(#07F0EA,100), sw, color(0)); 
  vorm[9] = new Tt(n, 1,  x+n/2,   y+n, 180, color(#FC172A,100), sw, color(0)); 
  vorm[8] = new Tt(n, 8,  x+3.5*n, y+n, 180, color(#07F0EA,100), sw, color(0));  
  vorm[10] = new Tt(n, 8, x+n/2,   y-n,   0, color(#FC172A,100), sw, color(0)); 
  vorm[11] = new Tt(n, 8, x-n/2,   y+n, 180, color(#FC172A,100), sw, color(0)); 
} 
 
void draw()  { 
  background(#E6FBFF); 
 
 for (int i = 0; i< 12; i++)   
  {   
  vorm[i].display();   
  } 
   
  vorm[0].dpRotLi(vorm[0]);     
  vorm[1].dpRotRe(vorm[1]);   
  vorm[2].dpRotRe(vorm[2]);    
  vorm[3].dpRotRe(vorm[3]);    
  vorm[4].dpRotLi(vorm[4]);       
  vorm[5].dpRotLi(vorm[5]);      
  vorm[6].dpRotRe(vorm[6]);     
  vorm[7].dpRotRe(vorm[7]);        
  vorm[8].dpRotLi(vorm[8]);  
  vorm[9].dpRotRe(vorm[9]);   
  vorm[10].dpRotLi(vorm[10]);   
  vorm[11].dpRotLi(vorm[11]);    
} 
 
void keyPressed() {       
    if (key == 's') {      
    noLoop();      
  }       
    if (key == 'r') {         
    loop();      
 }      
    if (key == '1') {            
    setup();  
 }         
    if (key == '2') {      
     for (int i = 0; i< 12; i++)    
  {    
     vorm[i].c1 = color(random(0,200),random(0,255),random(0,255),100);   
     vorm[i].c2 = color(random(0,200),random(0,255),random(0,255),100);    
     vorm[i].sw = 40;    
  }     
 }   
    if (key == '3') {      
     for (int i = 0; i< 12; i++)    
  {    
     vorm[i].c1 = color(random(0,200),random(0,255),random(0,255),200);   
     vorm[i].c2 = color(random(0,200),random(0,255),random(0,255),200);    
     vorm[i].sw = 40;    
  }     
 }  
}