Stap 2: de verwerking app
ook begonnen met de verwerking in de java-modus. alleen dan kan je de output in java kunt zien.
Hier is de code:
HScrollbar hs1, hs2, hs3; initialiseren van de scrollbar
F PFont;
VOID Setup
{
grootte (800, 480); beschrijven van de grootte van het venster
f = loadFont("ComicSansMS-Bold-48.vlw"); lettertype maken alleen voor de show
noStroke();
int x1 = hoogte/4;
HS1 nieuwe HScrollbar = (0, x 1 + 30, breedte-220, 16 en 16);
HS2 nieuwe HScrollbar = (0, 2 * x 1 + 30, breedte-220, 16 en 16);
hs3 nieuwe HScrollbar = (0, 3 * x 1 + 30, breedte-220, 16 en 16);
}
VOID draw() {}
Background(255);
textFont(f);
Fill(63,232,34);
tekst ("RGB kleur Selector", 5, 80);
Fill(0);
zweven img1Pos = hs1.getPos();
Fill(255,0,0);
zweven img2Pos = hs2.getPos();
Fill(0,255,0);
zweven img3Pos = hs3.getPos();
Fill(0,0,255);
zweven r = kaart (img1Pos, 0, breedte-200,0,255);
zweven van g = kaart (img2Pos, 0, breedte-200,0,255);
zweven b = kaart (img3Pos, 0, breedte-200,0,255);
int rr, gg, bb;
RR=int(r);
GG=int(g);
BB=int(b);
HS1.update(); om de huidige locatie
HS2.update();
hs3.update();
hs3.display();
HS1.display();
HS2.display();
Fill(RR,GG,BB);
strokeWeight(2);
Smooth();
ellips (700 250, 190, 190);
Stroke(0);
}
klasse HScrollbar
{
int swidth, sheight;
float xpos, ypos;
float spos, newspos;
float sposMin, sposMax;
int losse;
Booleaanse over;
Boolean vergrendeld;
float verhouding;
HScrollbar (xp drijven, zweven yp, int sw, int sh, int l)
{
swidth = sw;
sheight = sh;
int widthtoheight = sw - sh;
ratio = (float) sw / (zweven) widthtoheight;
xpos = xp;
yPos = yp-sheight/2;
spos = xpos + swidth/2-sheight/2;
newspos = spos;
sposMin = xpos;
sposMax = xpos + swidth - sheight;
losse = l;
}
VOID update()
{
if(overEvent()) {}
meer dan = true;
} else {}
meer dan = false;
}
Als (mousePressed & & meer dan) {}
vergrendeld = true;
}
if(!mousePressed) {}
vergrendeld = false;
}
if(Locked) {}
newspos = beperken (mouseX-sheight/2, sposMin, sposMax);
}
Als (abs (newspos - spos) > 1) {}
spos = spos + (newspos-spos) / los;
}
}
float beperken (val drijven, zweven minv, zweven maxv)
{
retourneren van min (max (val, minv), maxv);
}
Booleaanse overEvent()
{
Als (mouseX > xpos & & mouseX < xpos + swidth & & mouseY > ypos & & mouseY < ypos + sheight)
{
return true;
}
anders
{
return false;
}
}
VOID display)
{
noStroke();
Fill(204);
rect (xpos ypos, swidth, sheight);
if(over || Locked)
{
vulling (0, 0, 0);
}
anders
{
vulling (102 102, 102);
}
rect (spos ypos, sheight, sheight);
}
float getPos()
{
terug spos * verhouding;
}
}