float rechtecksLaenge;
float xZufall;
float yZufall;
int zufallsStreuung = 20;
int malGrenze = 0; //64; //ab welchem y-Wert soll gemalt werden?// ist jetzt veraltet, da die Werkzeugleiste jede Runde neu gezeichnet wird :-)
int form = 1;
int formOver = 0;
int formGroesse = 6;
int formHighlight = 0;
int farbe = 5;
int farbeOver = 0;
int farbeHighlight = 0;
int loesch = 0;
int loeschOver = 0;
float blinkZaehler = 0;
int mausGedrueckterBereich = 0; //hier wird gespeichert, ob man gerade am Malen ist oder am Werkzeug w?hlen. N?tig, damit man nicht beim Malen aus Versehen das Werkzeug wechselt.
//0 = Maus nicht gedr?ckt, 1 = Malen, 2 = Werkzeug w?hlen.
int mausGedrueckterBereichPermanentVORHER = 0;
int mausGedrueckterBereichDirektVORHER = 0;
//int farbAbweichung = 10;
//int intensitaet;


void setup() {
size(643, 500);
background(255);
framerate(60);
fill(230);
noStroke();
rect(0,0,569,30);
stroke(200);
line(0,30,700,30);
for(int i = 1; i <= 8; i = i + 1) {
line(500/7 * i, 0, 500/7 * i, 30);
}
}

void draw() {
formOver = 0;
formHighlight = 0;
farbeOver = 0;
farbeHighlight = 0;
loeschOver = 0;

mausGedrueckterBereichDirektVORHER = mausGedrueckterBereich;
/////////// es zeigt immer an, was mausGedrueckterBereich vorher f?r einen Wert hatte :-)
if (mousePressed && mausGedrueckterBereich == 0) {
mausGedrueckterBereichPermanentVORHER = mausGedrueckterBereich;
}
if (!mousePressed && mausGedrueckterBereich != 3) {
if (mausGedrueckterBereich != 0) {
mausGedrueckterBereichPermanentVORHER = mausGedrueckterBereich;
}
mausGedrueckterBereich = 0;
}
//Bedienungselemente
// println("mouseX=" + mouseX + " mouseY=" + mouseY);
////////////////////////////////////WERKZEUGBEREICH/////////////////////////////////////////////////
if (mouseY <= 30) {
if (!mousePressed) {
cursor(HAND);
}
if (mousePressed && mausGedrueckterBereich != 1) {

if (mouseX <= 70) {
form = 1;
formHighlight = 1;
loesch = 0;
} else if (mouseX <= 141) {
form = 2;
formHighlight = 2;
loesch = 0;
} else if (mouseX <= 212) {
form = 3;
formHighlight = 3;
loesch = 0;
} else if (mouseX <= 283) {
farbe = 1;
farbeHighlight = 1;
loesch = 0;
} else if (mouseX <= 354) {
farbe = 2;
farbeHighlight = 2;
loesch = 0;
} else if (mouseX <= 425) {
farbe = 3;
farbeHighlight = 3;
loesch = 0;
} else if (mouseX <= 497) {
farbe = 4;
farbeHighlight = 4;
loesch = 0;
} else if (mouseX <= 568) {
farbe = 5;
farbeHighlight = 5;
loesch = 0;
} else { // l?schen
if (loesch == 0 && mausGedrueckterBereichDirektVORHER == 0) {
loesch = 1;
mausGedrueckterBereich = 2; //ehem. = 1
} else if (loesch == 1 && mausGedrueckterBereichDirektVORHER == 0) {
fill(255);
rect(0,31,650,500);
loesch = 0;
mausGedrueckterBereich = 2;
}
}
if (mausGedrueckterBereich == 0) {
mausGedrueckterBereich = 2;
}
} else if (mausGedrueckterBereich != 1) {
if (mouseX <= 70) {
formOver = 1;
} else if (mouseX <= 141) {
formOver = 2;
} else if (mouseX <= 212) {
formOver = 3;
} else if (mouseX <= 283) {
farbeOver = 1;
} else if (mouseX <= 354) {
farbeOver = 2;
} else if (mouseX <= 425) {
farbeOver = 3;
} else if (mouseX <= 497) {
farbeOver = 4;
} else if (mouseX <= 568) {
farbeOver = 5;
} else if (mouseX <= 643) {
loeschOver = 1;
}
}
} else { ////////////////////////////MALEN/////////////////////////////////////////////
if (!mousePressed) {
cursor(CROSS);
}
// blinkZaehler = 0;

if (mouseY > malGrenze) {
switch(farbe) {
case 1:
fill(0,200,0,40);
break;
case 2:
fill(200,0,0,40);
break;
case 3:
fill(0,0,200,40);
break;
case 4:
fill(255,255,0,45);
break;
case 5:
fill(0,0,0,40);
break;
}
if (mousePressed && mausGedrueckterBereich !=2) {
loesch = 0;
mausGedrueckterBereich = 1;
if(form == 1) {
rechtecksLaenge = sq(random(formGroesse));
rect(mouseX - rechtecksLaenge/2 + random(-zufallsStreuung, zufallsStreuung), mouseY - rechtecksLaenge/2 + random(-zufallsStreuung, zufallsStreuung), rechtecksLaenge, rechtecksLaenge);
}
if(form == 3) {
rechtecksLaenge = sq(random(formGroesse));
ellipse(mouseX + random(-zufallsStreuung, zufallsStreuung), mouseY + random(-zufallsStreuung, zufallsStreuung), rechtecksLaenge, rechtecksLaenge);
}
if(form == 2) {
xZufall = random(-zufallsStreuung, zufallsStreuung);
yZufall = random(-zufallsStreuung, zufallsStreuung);
rechtecksLaenge = sq(random(formGroesse * 1.1));
triangle(mouseX - rechtecksLaenge/2 + xZufall, mouseY + rechtecksLaenge/2 + yZufall, mouseX + rechtecksLaenge/2 + xZufall, mouseY + rechtecksLaenge/2 + yZufall, mouseX + xZufall, mouseY - (.75 * sq(rechtecksLaenge) - rechtecksLaenge/2) / (0.1* sq(rechtecksLaenge)+.01) + yZufall);
}
}
}
}
bedienungsElemente();

if (loesch == 1) {
blink(1);
// delay(200);
}
// println("mausGedrueckterBereich=" + mausGedrueckterBereich);
println(loesch + " " + mausGedrueckterBereich + " " + mausGedrueckterBereichDirektVORHER + " " + mausGedrueckterBereichPermanentVORHER);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


void blink(int blinkenJaNein) {
fill(255,221,83,255);
fill(230);
if(mousePressed) {
fill(210);
}
rect(569,0,74,30);
if (blinkenJaNein == 0) {
stroke(200,0,0,120);
strokeWeight(2);
line(569,0,569+74,29);
line(569,29,569+74,0);
strokeWeight(1);
} else if (blinkenJaNein == 1) {
blinkZaehler = blinkZaehler + .05;
if (blinkZaehler/2.0 < round(blinkZaehler/2) * 1.0) {
stroke(200,0,0,120);
strokeWeight(2);
line(569,0,569+74,29);
line(569,29,569+74,0);
strokeWeight(1);
}
delay(5);
}
noStroke();
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void bedienungsElemente() {
fill(230);
noStroke();
rect(0,0,569,30);
stroke(200);
line(0,30,700,30);
for(int i = 1; i <= 8; i = i + 1) {
line(500/7 * i, 0, 500/7 * i, 30);
}

fill(230);
stroke(200);
rect(25,5,20,20);
triangle(95,25,121,25,108,3);
ellipse(179,15,23,23);
noStroke();
//gr?n
fill(0,200,0,100);
rect(214,10,70,10);
//rot
fill(200,0,0,100);
rect(285,10,70,10);
//blau
fill(0,0,200,100);
rect(356,10,70,10);
//gelb
fill(255,255,0,100);
rect(427,10,70,10);
//schwarz
fill(0,0,0,100);
rect(498,10,70,10);
//l?schen
fill(230);
rect(569,0,74,30);
stroke(200);
line(569,0,569+74,30);
line(569,30,569+74,0);

//Hervorhebung der gew?hlten Form
noFill();
stroke(100);
if (form == 1 || formOver == 1) { //Quadrat
rect(25,5,20,20);
}
if (form == 2 || formOver == 2) { //Dreieck
triangle(95,25,121,25,108,3);
}
if (form == 3 || formOver == 3) { // Kreis
ellipse(179,15,23,23);
}

//Hervorhebung der gew?hlten und der evtl. ?berfahrenen Farbe
noStroke();
if (farbe == 1 || farbeOver == 1) { //gr?n
fill(0,200,0,200);
rect(214,10,70,10);
}
if (farbe == 2 || farbeOver == 2) { //rot
fill(200,0,0,200);
rect(285,10,70,10);
}
if (farbe == 3 || farbeOver == 3) { //blau
fill(0,0,200,200);
rect(356,10,70,10);
}
if (farbe == 4 || farbeOver == 4) { //gelb
fill(255,255,0,250);
rect(427,10,70,10);
}
if (farbe == 5 || farbeOver == 5) { //schwarz
fill(0,0,0,180);
rect(498,10,70,10);
}

if (loeschOver == 1) {
blink(0);
// delay(200);
}

//Hervorhebung der gerade gedr?ckten Form
fill(200);
stroke(100);
if (formHighlight == 1) { //Quadrat
rect(25,5,20,20);
}
if (formHighlight == 2) { //Dreieck
triangle(95,25,121,25,108,3);
}
if (formHighlight == 3) { // Kreis
ellipse(179,15,23,23);
}

//Hervorhebung der gerade gedr?ckten Farbe
noStroke();
if (farbeHighlight == 1) { //gr?n
fill(0,120,0,200);
rect(214,10,70,10);
}
if (farbeHighlight == 2) { //rot
fill(120,0,0,200);
rect(285,10,70,10);
}
if (farbeHighlight == 3) { //blau
fill(0,0,120,200);
rect(356,10,70,10);
}
if (farbeHighlight == 4) { //gelb
fill(190,190,0,200);
rect(427,10,70,10);
}
if (farbeHighlight == 5) { //schwarz
fill(0,0,0,255);
rect(498,10,70,10);
}

}

This website has been archived and is no longer maintained.