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...") |
(No difference)
|
Revision as of 15:44, 17 December 2011
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");
}