Einblick in die generative Gestaltung mit «Processing»

Sechs Kursabende à vier Stunden an der EB Zürich

Kurskonzeption und Leitung Hanna Züllig


< back

						/*
Autor: Bruno Frischkencht
Kurs: Einblick in die generative Gestaltung mit processing ip971231
Kursleitung: Hanna Zuellig
Veroeffentlicht unter der creative common license Attribution-NonCommercial-ShareAlike
CC BY-NC-SA  http://creativecommons.org/licenses/
*/
/*
Farbwerte eines Bildes als Raster darstellen.
Die Groesse der Rasterpunkte ist abhaengig von der Helligkeit des Bildpunktes
Die Transparenz ist abhaengig von der Helligkeit des Bildpunktes

*/

float angle=0;//######## Definition des Startwinkels
float angleinc=1;//######## Definition des Zählwerts, dieser Wert bestimmt den Schritt zur nächsten Drehung

 /* @pjs preload="sketches/kurstag04/Bruno/playcolors_flowers_screensaver-95115-1.jpeg"; */

PImage myimg;
int grid=10;

void setup(){
  size(500,500);
  myimg = loadImage("sketches/kurstag04/Bruno/playcolors_flowers_screensaver-95115-1.jpeg");
  background(255);
  noStroke();
  smooth();
  ellipseMode(RADIUS);//mit ellipseMode RADIUS wird das Mass als Radius ausgewertet und nicht als Durchmesser
  
  //noLoop();//die Funktion draw wird nur einmal aufgerufen
}


void draw(){
  
  background(255);

  for(int y=5;y<=height;y+=20){
    
    for(int x=5;x<=width;x+=20){

       color c = myimg.get(x,y);//Farbe am jeweiligen Punkt auslesen    

       pushMatrix();  //######## 1. hier wird das aktuelle Koordinatensystem gespeichert
       
       //######## 2. hier wird der Mittelpunkt des Koordinatensystems zur aktuellen Position von x,y hin verschoben
       translate(x-10,y-10); 
       
       //######## 3. dann wird rotiert: Winkelmasse mit radians() in Bogenmasse umwandeln
       rotate(radians(angle));
       
        //######## 4. dann wird gezeichnet: Achtung, weil das Koordiatensystem nun auf x,y liegt muss die Zeichnung um diese Masse verschoben werden
        //statt  line(x,y,x+20, y+20); ergibt das line(0,0,20, 20);
       //line(0,0,20, 20);
       fill(c, 100);
       ellipse(0,0,x/5,y/20);
       //triangle(0,0,20,20,0,20);
        
       popMatrix(); //######## 5. hier wird das Koordinatensystem wieder zurückgesetzt
   
    }
  
  }

    angle+=angleinc;


  if(keyPressed && key=='s'){
    
    saveFrame("Bruno.jpg");
  }
  
}