Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Day 2: Ornament mit Schleifen

20. September 2012

Um spannende Ornamente zu kreieren haben wir zum ersten Mal Schleifen eingesetzt. Dies hat den Vorteil, dass das eigentliche Muster nur einmal gezeichnet werden muss und dann x beliebig mal wiederholt werden kann. Anfangs habe ich nur mit einfachen Mustern ein Ornament erstellt, welches sich aber nicht wirklich auf alle 4 Seiten erweitern liess. Da kam mir die Idee Wellen zu zeichnen, die nach unten oder oben ausgerichtet sein konnten und somit horizontal wie auch vertikal ganze Wellenlinien darstellten. Um die Ausrichtung der Wellen auch gleich darstellen zu können, habe ich den Code so verändert, dass die Wellen sich selber nach dem Mauszeiger ausrichten. Danach kamen noch verschiedene Spielereien dazu wie Farbwerte oder Linienstärken je nach Zeigerbewegung zu ändern.


void setup()
{
  size(600,600);      // def. fenstergroesse

  smooth();           // aktiviere antialiasing
  strokeWeight(15);    // linienbreite
}

int colorR = 255;
int colorG = 150;
int colorB = 123;

void draw()
{
  background(255);    // def. hintergrundfarbe
 frameRate(12);
//colorR = 30;
//colorG = 30;
//colorB = 30;
  float radius = dist(mouseX,mouseY,width/2,height/2);
  radius = map(radius,0,width,1,4);


  for(int x = 0; x <= width; x+=30)
  {
    for(int y = 0; y <= height; y+=30)
     {
      if (colorR > 255)
      {
      colorR = 0;
      }
      if (colorG > 255)
      {
      colorG = 0;
      }
      if (colorB > 255)
      {
      colorB = 0;
      }
     
      colorR = colorR +3;
      colorG = colorG +3;
      colorB = colorB +3;
      pushMatrix();
      //scale(2);
       translate(x,y);
        ornament();          // funtions aufruf
      popMatrix();
    }
  }
}




// funktion
void ornament()
{
  rotate(calcAngle());
  pushMatrix();
  noFill();
  strokeWeight(random(5,10));
  arc(0, 0, 30, 30, radians(0), radians(180));
  arc(15, 0, 30, 30, radians(180), radians(360));
  pushStyle();
  stroke(colorR,mouseX,colorB-mouseY);
 // stroke(colorR*mouseX,colorG*mouseY,mouseX-colorR);
  ellipse(0,7,5,5);
  ellipse(15,-7,5,5);
  popStyle();
  strokeWeight(2);
  line(5,5,10,-5);
  line(-10,-5,-5,5);
  popMatrix();
}
float calcAngle()
{
  return -atan2(mouseX - (width / 2),mouseY - (height / 2));
}