header oit

 

tetromino  "OIt"                   bekijk de rotaties van de tetrominos O               terug naar de inleiding 

Met objecten van deze class kan je tetromino O en tetromino I maken.

 

 

class OIt extends Vormen {  
   
//argumenten van de constructor 
//1) lengte, 2) breedte,   3) draaipunt, 4) x positie, 5) y positie,  
//6) hoek    7) vormkleur, 8) lijndikte, 9) lijnkleur  
 
//      1         2         3        4         5         6           7          8         9 
OIt(float n_, float h1_, int d_, float x_, float y_, float hoek_, color c1_, float sw_, color c2_){  
    super();  
    n = n_; h1 = h1_; 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, h1);    vertex(-n, -h1);    vertex(n, -h1);    vertex(n, h1);} 
    if (d == 1) {vertex(0, 0);      vertex(0, -2*h1);   vertex(2*n, -2*h1);vertex(2*n, 0);} 
    if (d == 2) {vertex(0, 2*h1);   vertex(0, 0);       vertex(2*n, 0);    vertex(2*n, 2*h1); }      
    if (d == 3) {vertex(-2*n, 2*h1);vertex(-2*n, 0);    vertex(0, 0);      vertex(0, 2*h1);} 
    if (d == 4) {vertex(-2*n, 0);   vertex(-2*n, -2*h1);vertex(0, -2*h1);  vertex(0, 0);} 
    endShape(CLOSE);  
    popMatrix();  
  }  
}
 
voorbeeld met tetromino I en tetromino O      

De schets maakt gebruik van objecten van de class "OIt"  en beweginsmethodes van de superclass "Vormen".

 
 

Vormen [] vorm; 
 
void setup()  { 
size(780,560); 
float x = width/2; 
float y = height/2; 
float n = height/10; 
 
int klvorm = #FC0015; 
int stroke = #050505; 
float sw = 6; 
 
  vorm = new Vormen[10];  
 //argumenten van de constructor 
//1) lengte, 2) breedte,   3) draaipunt, 4) x positie, 5) y positie,  
//6) hoek    7) vormkleur, 8) lijndikte, 9) lijnkleur  
 
//                   1     2  3    4     5     6         7           8          9 
  vorm[0] = new OIt (n,    n, 4, x-2*n, y-n,   0, color(klvorm,50),  sw, color(stroke));  
  vorm[1] = new OIt (n/2,2*n, 1, x-2*n, y-3*n,90, color(#25A5F7,100),sw, color(stroke));  
  vorm[2] = new OIt (n,    n, 1, x+2*n, y-n,   0, color(klvorm,50),  sw, color(stroke)); 
  vorm[3] = new OIt (n/2,2*n, 1, x-4*n, y+3*n, 0, color(#F7ED14,100),sw, color(stroke));   
  vorm[4] = new OIt (n,    n, 4, x-n,   y+n,   0, color(klvorm,50),  sw, color(stroke)); 
  vorm[5] = new OIt (n,    n, 1, x-n,   y,     0, color(#60F725,100),sw, color(stroke)); 
  vorm[6] = new OIt (n,    n, 1, x+n,   y+n,   0, color(klvorm,50),  sw, color(stroke)); 
  vorm[7] = new OIt (n/2,2*n, 4, x+4*n, y+3*n, 0, color(#F7ED14,100),sw, color(stroke)); 
  vorm[8] = new OIt (n,    n, 3, x,     y+n,   0, color(klvorm,50),  sw, color(stroke)); 
  vorm[9] = new OIt (n,    n, 2, x,     y+n,   0, color(klvorm,50),  sw, color(stroke)); 
} 
 
void draw()  { 
  background(#E6FBFF); 
   
 for (int i = 0; i< 10; i++)   
  {   
  vorm[i].display();   
  }   
   
  vorm[0].dpRotRe(vorm[0]);    
  vorm[2].dpRotLi(vorm[2]);     
  vorm[4].dpRotLi(vorm[4]);       
  vorm[6].dpRotRe(vorm[6]);       
  vorm[8].dpRotRe(vorm[8]);      
  vorm[9].dpRotLi(vorm[9]);    
} 
 
void keyPressed() {      
  if (key == 's') {     
    noLoop();     
  }      
  if (key == 'r') {        
    loop();     
  }   
}