Einblick in die generative Gestaltung mit «Processing»

Sechs Kursabende à vier Stunden an der EB Zürich

Kurskonzeption und Leitung Hanna Züllig


< back

						/*
Autorin: Theres Waeckerlin
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/
*/

/*
Kombination aus Rotation und Bild laden
Die Farbwerte des zugrunde liegenden Bildes werden als Farbwerte für den Raster benutzt
*/

/* @pjs preload="sketches/kurstag04/Theres/rosen.jpg"; */

PImage myimg;
float angle=0;//######## Definition des Startwinkels
float angleinc=0.8;//######## Definition des Zählwerts, dieser Wert bestimmt den Schritt zur nächsten Drehung
float skalar=0.9; //       was bedeutet skalar???
float skalarfaktor=0.99;


void setup(){
  
  size(500,500);
  smooth();
  myimg=loadImage("sketches/kurstag04/Theres/rosen.jpg");
}



void draw(){
  
   background(255);
    ellipseMode(CENTER);
  
  for(int y=5;y<=height;y+=20){
    for(int x=5;x<=width;x+=20){
    
       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,y); 
       //######## 3. dann wird rotiert: Winkelmasse mit radians() in Bogenmasse umwandeln
       rotate(radians(angle));
       
       pushMatrix();
       scale(skalar);
        
       color c=myimg.get(x,y);
       float helligkeit=brightness(c);
        
       noStroke();
       fill(c);
       rect(0,0,helligkeit/4, helligkeit/2);
       
       noFill();
       stroke(c,255/(skalar*2));
       ellipse(0,0,helligkeit,helligkeit/2); //vorher /5
       
       
      
       popMatrix();
       popMatrix();//Koordinatensystem wieder zurück setzen
       
       }//end innere x Schlaufe
    
    }//end äussere y Schlaufe
    
    
     angle+=angleinc;//Winkel hochzählen - erst nachdem der ganze Durchgang gezeichnet ist
    skalar=skalar*skalarfaktor;
    
    if(skalar<0.7){
      skalarfaktor=1.01;
    }
    if(skalar>1.2){
      skalarfaktor=0.99;
    }
    
    
    if(mousePressed){
      saveFrame("Theres.png");
      
    }
}