GMU:Einführung ins Programmieren mit Processing/final/V-Falten

From Medien Wiki

V-Falten

V- Falten zeichnen sich durch das deutliche V aus. Das entsteht, wenn drei Bergfalten und drei Talfalten in einem Punkt zusammentreffen. V-Falten können sich in linearer Reihe unendlich über ein Blatt Papier fortsetzen. Meistens wirkt sich eine Technik auf alle Falten aus, so dass das Papier flach zusammengeschoben werden kann.


PROGRAM

 

int count = 2;
int countX = 20+mouseX; 
int countY = 20+mouseY; 

void setup() {
  size( 500, 500 );
  rectMode( CENTER );
}

void draw() {
  background(255);
  float corridoX = (mouseX/5)+width/countX;
  float corridoY = (mouseY/5)+height/countY;
  translate(corridoX/2, corridoY/2);

  for (int i=0; i < countX; i++) {
    for (int j=0; j < countY; j++) {

      float posX = i*corridoX;
      float posY = j*corridoY;

      float distance = dist( posX, posY, mouseX, mouseY);
      float segmento = distance;

      if (segmento >corridoX/2) {
        segmento = corridoY/2;
      }
      if (mousePressed == false) {
        drawOrnament( posX, posY, corridoX, corridoY);
        // drawFoldingLine( posX, posY, segmento );
        drawFoldingLineOther( posX, posY, corridoX, corridoY );
      }
      else {
        drawOrnament( posX, posY, corridoX, corridoY);
      }
    }
  }
}

void drawFoldingLine(float x, float y, float segmento) {
  beginShape();
  stroke(100, 100);
  vertex(x-segmento, y);
  vertex(x, y-segmento);
  vertex(x+segmento, y);
  vertex(x, y-segmento);
  vertex(x-segmento, y);
  vertex(x, y+segmento);
  vertex(x+segmento, y);
  vertex(x, y+segmento);
  endShape();
}

void drawFoldingLineOther(float x, float y, float w, float h) {
  stroke(0);
  noFill();
  beginShape();
  // 01 upper left corner
  vertex( x - w/2, y - h/2 );
  // 02 center
  vertex( x, y );
  // 03 upper right corner
  vertex( x + w/2, y - h/2 );
  endShape();

  beginShape();
  // 04 center left
  vertex( x - w/2, y );
  // 05 bottom center
  vertex( x, y + h/2 );
  // 06 center right
  vertex( x + w/2, y );
  endShape();
  stroke(255, 40, 40, 70);
  line( x - w/2, y - h/2, x - w/2, y );
  line( x, y, x, y + h/2 );
  line( x, y, x, y + h/2 );
  line( x, y, x, y + h/2 );
  line( x - w/2, y + h/2, x - w/2, y );
  line( x + w/2, y - h/2, x + w/2, y );
  line( x, y, x, y + h/2 );
  line( x, y, x, y - h/2 );
  endShape();
}

void drawOrnament(float x, float y, float w, float h) {
  beginShape();
  noStroke();
  fill(20, 10, 110, 40); 
  vertex(x-w/2, y-h/2);
  vertex(x+w/2, y-h/2);
  vertex(x-w/2, y+h/2);
  vertex(x+w/2, y+h/2);
  endShape();
}

void keyPressed() {
  saveFrame("Screenshot###.jpg");
}




__________________________________

Adriana Cabrera