dpr = 0 , dps = y

 

dpr = 1 dps = r

 

dpr  = 1 dps = r

 

dpr = 3 dps = t

 

dpr = 3,  dps = t

 

dpr = 3,  dps = y

 

dpr = 4 dps = p

 

dpr = 4 dps = w

 

dpr = 5 dps = t

 

dpr = 6 dps = y

header an

animatie met 24 driehoeken  "Drieh_an"        terug naar de inleiding                     bekijk de roterende driehoeken

de schets maakt gebruik van objecten van de class "Drieh_an" en de superclass "Vormen"         
 
De animatie bestaat uit twaalf wel, en twaalf niet roterende driehoeken.
Met de toetsen 1 t/m 6 en toets 0 verandert het draaipunt "dpr" van de roterende driehoeken.
Met de toetsen q, w, e, r, t, y en toets p verandert het draaipunt "dps" van de niet roterende driehoeken.
Met de s toets stopt, en met de overige toetsen start de rotatie weer.
Met dpr = 3 (toets 3) en dps = 3 (toets e) hersteld de oorspronkelijke instelling
 

Het toepassen van de draaienLi() functie

1) De vomen 0 t/m 11 in setup in het (0,0) (regel 8 en 9) punt plaatsen.
2) De code in draw(); tussen pushMatrix() (regel 46) en popMatrix (regel 51) plaatsen,
3) In draw(); mbv translate(x,y); (regel 47) de vormen in de gewenste positie plaatsen. hier translate(width/2, height/2); (regel 47)
4) je hoef draaienLi(); (regel 48) maar voor een vorm toe te passen.
 
 
Vormen[] vorm;
int dps = 3; //draaipunt van de stilstaande driehoeken
int dpr = 3; //draaipunt van de roterende driehoeken
void setup() {
//  fullScreen();
  size(780,560);
  float x = 0;
  float y = 0;
  float x2 = width/2;
  float y2 = height/2;
  float n = height/5;
  float a = sqrt(2*n*n); 
  vorm = new Vormen[24];
  vorm[0] = new Drieh_an(n, dpr, x,    y-a, 180, color(255, 0, 0, 100));
  vorm[1] = new Drieh_an(n, dpr, x,    y-a,   0, color(200, 0, 100, 100));
  vorm[2] = new Drieh_an(n, dpr, x+a,    y, -90, color(200, 200, 50, 100));
  vorm[3] = new Drieh_an(n, dpr, x+a,    y,  90, color(200, 200, 50, 100));
  vorm[4] = new Drieh_an(n, dpr, x,    y+a,   0, color(200, 0, 50, 100));
  vorm[5] = new Drieh_an(n, dpr, x,    y+a, 180, color(200, 0, 50, 100));
  vorm[6] = new Drieh_an(n, dpr, x-a,    y,  90, color(100, 200, 50, 100));
  vorm[7] = new Drieh_an(n, dpr, x-a,    y, -90, color(100, 200, 50, 100));
  vorm[8] = new Drieh_an(n, dpr, x-a/2,  y-a/2, 135, color(100, 200, 100, 100));
  vorm[9] = new Drieh_an(n, dpr, x+a/2,  y-a/2,-135, color(100, 200, 100, 100));
  vorm[10] = new Drieh_an(n, dpr, x+a/2, y+a/2, -45, color(100, 200, 50, 100));
  vorm[11] = new Drieh_an(n, dpr, x-a/2, y+a/2,  45, color(100, 200, 50, 100));
 
  vorm[12] = new Drieh_an(n, dps, x2,   y2-a,180, color(255, 0, 0, 100));
  vorm[13] = new Drieh_an(n, dps, x2,   y2-a,  0, color(200, 0, 100, 100));
  vorm[14] = new Drieh_an(n, dps, x2+a, y2,  -90, color(200, 200, 50, 100));
  vorm[15] = new Drieh_an(n, dps, x2+a, y2,   90, color(200, 200, 50, 100));
  vorm[16] = new Drieh_an(n, dps, x2,   y2+a,  0, color(200, 0, 50, 100));
  vorm[17] = new Drieh_an(n, dps, x2,   y2+a,180, color(200, 0, 50, 100));
  vorm[18] = new Drieh_an(n, dps, x2-a, y2,   90, color(100, 200, 50, 100));
  vorm[19] = new Drieh_an(n, dps, x2-a, y2,  -90, color(100, 200, 50, 100));
  vorm[20] = new Drieh_an(n, dps, x2-a/2, y2-a/2, 135, color(100, 200, 100, 100));
  vorm[21] = new Drieh_an(n, dps, x2+a/2, y2-a/2,-135, color(100, 200, 100, 100));
  vorm[22] = new Drieh_an(n, dps, x2+a/2, y2+a/2, -45, color(100, 200, 50, 100));
  vorm[23] = new Drieh_an(n, dps, x2-a/2, y2+a/2,  45, color(100, 200, 50, 100));
}
 
void draw() { 
  background(#E6FBFF); 
 // background(0); 
 
  pushMatrix(); 
  translate(width/2, height/2);  
  vorm[0].draaienLi(); 
  for (int i = 0; i < 12; i++)   
    vorm[i].display(); 
  popMatrix();  
 
  for (int i = 12; i < 24; i++)   
    vorm[i].display(); 
} 
 
void keyPressed() {    
   if (key == 's') {   
    noLoop();   
  }    
  else 
  {     
    loop();   
 }  
 
  if (key == '1') {          
    dpr = 1; 
    setup();     
  }
  
  if (key == '2') {          
    dpr = 2; 
    setup();     
  }
  
  if (key == '3') {          
    dpr = 3; 
    setup();     
  }
  
  if (key == '4') {          
    dpr = 4; 
    setup();     
  }
  
   if (key == '5') {          
    dpr = 5; 
    setup();     
  }
  
   if (key == '6') {          
    dpr = 6;
    setup();     
  }
  
  if (key == '0') {          
    dpr = 0;
    setup();     
  }
  
  if (key == 'q') {          
    dps = 1;
    setup();     
  }
  
  if (key == 'w') {          
    dps = 2;
    setup();     
  }
  if (key == 'e') {          
    dps = 3;
    setup();     
  }
  if (key == 'r') {          
    dps = 4;
    setup();     
  }
  if (key == 't') {          
    dps = 5;
    setup();     
  }
  if (key == 'y') {          
    dps = 6;
    setup();     
  }
  if (key == 'p') {          
    dps= 0;
    setup();     
  }
 }

 
 

dpr = 0 dps = p

 

dpr = 1 dps = q

 

dpr = 3 dps = e

 

dpr = 3 dps = e

 

dpr = 2 dps = t

 

dpr = 2 dps = t

 

dpr = 6 dps = q

 

dpr = 6 dps = q

 

dpr = 5 dps = w

 

 

dpr = 2 dps = e