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

From Medien Wiki
(Created page with "= 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 li...")
 
Line 13: Line 13:


== PROGRAM ==
== PROGRAM ==
[[Image:Processing_einfuehrung_final_adriana.jpg]]
[[Image:Processing einfuehrung final adriana.jpg]]


<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">

Revision as of 19:38, 21 January 2012

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

Processing einfuehrung final adriana.jpg

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");
}