Animatie met pentomino "W", tetromino "St" en parallellogrammen                      terug naar de inleiding

De schets maakt gebruik van objecten van de classes  "W""St""Paral""Text" , "Ruitjes", en de superclass   "Vormen"

Bekijk de  "W" , "St" en parallellogrammen animatie

De animatie is omgezet naar p5.js omdat de class "Text" niet met processing.js werkt

De toetsfuncties:
Toetsen  "1"  t/m  "7"  verandering draaipunten, toets "0" weer naar de oorspronkelijke animatie
Toets "a" toont de ruitjes achtergrond met rode draaipunten, toets "u" sluit dit af.

Toets "s" stopt en ieder andere toets start de animatie. Met toets "d" maak je een afbeelding van de animatie (alleen mogelijk met p5.js)

 Omdat "s" in de draw lus zit zal de animatie bij het gebruik van de "d" toets weer gaan draaien
 
 

Vormen[] vorm = new Vormen[24];   
 boolean aan = false;    
 String toets = "toets 0 ingedrukt";  
 int dp = 0;  
 float sw = 1;  
 Text tekst;  
 Ruitjes ruitjespap;   
   
 void setup() {    
 // fullScreen();   
  size(780, 560);    
 //size(960, 540);  
  float x = width/2;    
  float y = height/2;    
  float n = height/18;   
   
  ruitjespap = new Ruitjes(n,x,y);  
  tekst = new Text( toets, n/2, 1, x-12*n, y-8*n, 0, color(0));  
  vorm[0] = new W(    n,      1, 8-dp, x-4*n, y-5*n, 0, color(200, 255, 0, 100));   
  vorm[1] = new W(    n,      0, 3+dp, x-4*n, y-5*n, 0, color(200, 0, 0, 100));   
  vorm[2] = new Paral(n, 3*n, 0, 7-dp, x-4*n, y-3*n, 0, color(0, 255, 0, 100));     
  vorm[3] = new Paral(n, 3*n, 1, 1+dp, x-4*n, y-3*n, 0, color(0, 100, 255, 100));   
  vorm[4] = new St(   n,      1, 1+dp, x-4*n, y,   -90, color(51, 173, 255,100),sw,color(0));   
  vorm[5] = new St(   n,      0, 8-dp, x-4*n, y,    90, color(92, 214, 92,100),sw, color(0));     
    
  vorm[6] = new W(    n,      1, 8-dp, x+4*n, y-5*n,  0, color(200, 255, 0, 100));     
  vorm[7] = new W(    n,      0, 3+dp, x+4*n, y-5*n,  0, color(200, 0, 0, 100));   
  vorm[8] = new Paral(n, 3*n, 0, 7-dp, x+4*n, y-3*n,  0, color(0, 255, 0, 100));     
  vorm[9] = new Paral(n, 3*n, 1, 1+dp, x+4*n, y-3*n,  0, color(0, 100, 255, 100));   
  vorm[10] = new St(  n,      1, 1+dp, x+4*n, y,    -90, color(102, 255, 102,100),sw, color(0));   
  vorm[11] = new St(  n,      0, 8-dp, x+4*n, y,     90, color(255, 128, 255,100),sw, color(0));   
    
  vorm[12] = new W(    n,     1, 8-dp, x-4*n, y+5*n, 180, color(200, 255, 0, 100));    
  vorm[13] = new W(    n,     0, 3+dp, x-4*n, y+5*n, 180, color(200, 0, 0, 100));     
  vorm[14] = new Paral(n,3*n, 0, 7-dp, x-4*n, y+3*n, 180, color(0, 255, 0, 100));     
  vorm[15] = new Paral(n,3*n, 1, 1+dp, x-4*n, y+3*n, 180, color(0, 100, 255, 100));   
  vorm[16] = new St(   n,     1, 1+dp, x-4*n, y,      90, color(51, 173, 255,100),sw,color(0));   
  vorm[17] = new St(   n,     0, 8-dp, x-4*n, y,     -90, color(92, 214, 92,100),sw, color(0));    
    
  vorm[18] = new W(    n,     1, 8-dp, x+4*n, y+5*n, 180, color(200, 255, 0, 100));     
  vorm[19] = new W(    n,     0, 3+dp, x+4*n, y+5*n, 180, color(200, 0, 0, 100));   
  vorm[20] = new Paral(n, 3*n,0, 7-dp, x+4*n, y+3*n, 180, color(0, 255, 0, 100));     
  vorm[21] = new Paral(n, 3*n,1, 1+dp, x+4*n, y+3*n, 180, color(0, 100, 255, 100));   
  vorm[22] = new St(   n,     1, 1+dp, x+4*n, y,      90, color(92, 214, 92,100),sw,  color(0));   
  vorm[23] = new St(   n,     0, 8-dp, x+4*n, y,     -90, color(255, 128, 255,100),sw,color(0));   
}    
    
void draw() {    
  background(#E6FBFF);  
  strokeWeight(sw);  
    
  for (int i = 0; i < 24; i++)   
{   
  vorm[i].display();   
}   
  tekst.display();  
   if (key == 's') {      
       
  }        
   else   
 {   
  vorm[0].dpRotRe(vorm[0]);   
  vorm[1].dpRotLi(vorm[1]);   
  vorm[2].dpRotLi(vorm[2]);   
  vorm[3].dpRotRe(vorm[3]);   
  vorm[4].dpRotRe(vorm[4]);   
  vorm[5].dpRotLi(vorm[5]);  
    
  vorm[6].dpRotRe(vorm[6]);     
  vorm[7].dpRotLi(vorm[7]);   
  vorm[8].dpRotLi(vorm[8]);   
  vorm[9].dpRotRe(vorm[9]);   
  vorm[10].dpRotRe(vorm[10]);   
  vorm[11].dpRotLi(vorm[11]);     
    
  vorm[12].dpRotRe(vorm[12]);  
  vorm[13].dpRotLi(vorm[13]);   
  vorm[14].dpRotLi(vorm[14]);   
  vorm[15].dpRotRe(vorm[15]);   
  vorm[16].dpRotRe(vorm[16]);   
  vorm[17].dpRotLi(vorm[17]);   
     
  vorm[18].dpRotRe(vorm[18]);     
  vorm[19].dpRotLi(vorm[19]);   
  vorm[20].dpRotLi(vorm[20]);   
  vorm[21].dpRotRe(vorm[21]);   
  vorm[22].dpRotRe(vorm[22]);   
  vorm[23].dpRotLi(vorm[23]);     
 }  
  
  if (key == 'a' || aan ) {            
     ruitjespap.display();   
       
     for (int i = 0; i < 24; i++)   
  {   
     vorm[i].dpAan();  
     tekst.dpAan();  
 }   
     aan = true;   
}   
     
  if (key == 'u' && aan ) {            
     aan = false;   
 }   
}   
   
void keyPressed() {                     
      
  if (key == '1') {            
     dp = 1;   
     toets = "toets 1 ingedrukt";  
     setup();    
 }          
  if (key == '2') {     
     dp = 2;   
     toets = "toets 2 ingedrukt";  
     setup();     
 }    
  if (key == '3') {            
     dp = 3;  
     toets = "toets 3 ingedrukt";  
     setup();   
 }    
  if (key == '4') {            
     dp = 4;   
     toets = "toets 4 ingedrukt";  
     setup();    
 }   
  if (key == '5') {            
     dp = 5;  
     toets = "toets 5 ingedrukt";  
     setup();  
 }        
  if (key == '6') {            
     dp = 6;   
     toets = "toets 6 ingedrukt";  
     setup();    
 }        
  if (key == '7') {    
     toets = "toets 7 ingedrukt";   
     dp = 7;   
     setup();  
 }    
  if (key == '0') {            
     dp = 0;   
     toets = "toets 0 ingedrukt";  
     setup();    
 }    
}