Étape 2: l’application de traitement
en outre, commencer le traitement en mode java. alors seulement vous pouvez voir la sortie en java.
Voici le code :
HScrollbar hs1, hs2, hs3 ; initialiser la barre de défilement
PFont f ;
void setup()
{
taille (800, 480) ; décrire la taille de la fenêtre
f = loadFont("ComicSansMS-Bold-48.vlw") ; créer des polices. juste pour le show
noStroke() ;
int x1 = hauteur/4 ;
HS1 = nouveau HScrollbar (0, x 1 + 30, largeur-220, 16, 16) ;
HS2 = nouveau HScrollbar (0, 2 * x 1 + 30, largeur-220, 16, 16) ;
HS3 = nouveau HScrollbar (0, 3 * x 1 + 30, largeur-220, 16, 16) ;
}
{} void draw()
Background(255) ;
textFont(f) ;
Fill(63,232,34) ;
texte ("RGB Color Selector", 5, 80) ;
Fill(0) ;
float img1Pos = hs1.getPos() ;
Fill(255,0,0) ;
float img2Pos = hs2.getPos() ;
Fill(0,255,0) ;
float img3Pos = hs3.getPos() ;
Fill(0,0,255) ;
flotteur r = carte (img1Pos, 0, largeur-200,0,255) ;
flotteur g = carte (img2Pos, 0, largeur-200,0,255) ;
float b = carte (img3Pos, 0, largeur-200,0,255) ;
int rr, gg et bb ;
RR=int(r) ;
GG=int(g) ;
BB=int(b) ;
HS1.Update() ; pour obtenir la position actuelle
HS2.Update() ;
HS3.Update() ;
HS3.Display() ;
HS1.Display() ;
HS2.Display() ;
Fill(RR,GG,BB) ;
strokeWeight(2) ;
Smooth() ;
ellipse (700, 250, 190, 190) ;
Stroke(0) ;
}
HScrollbar, classe
{
int swidth, sheight ;
flotteur xpos, ypos ;
flotteur spos, newspos ;
flotteur sposMin, sposMax ;
int lâche ;
plus booléenne ;
Boolean verrouillé ;
ratio de flotteur ;
HScrollbar (float xp, flotter yp, sw int, int, int l)
{
swidth = sw ;
sheight = sh ;
int widthtoheight = sw - sh ;
ratio = (float) sw / (float) widthtoheight ;
PosX = xp ;
YPos = yp-sheight/2 ;
FS = xpos + swidth/2-sheight/2 ;
newspos = spos ;
sposMin = xpos ;
sposMax = xpos + swidth - sheight ;
vrac = l ;
}
void update()
{
{if(overEvent())}
plus = true ;
} else {}
plus = false ;
}
Si (mousePressed & & plus) {}
verrouillée = true ;
}
{if(!mousePressed)}
verrouillée = false ;
}
{if(Locked)}
newspos = contraindre (mouseX-sheight/2, sposMin, sposMax) ;
}
Si (abs (newspos - spos) > 1) {}
FS = spos + (newspos-spos) / en vrac ;
}
}
flotteur contraindre (float val, flotter minv, flotter maxv)
{
retour min (max (val, minv), maxv) ;
}
overEvent() booléenne
{
Si (mouseX > xpos & & mouseX < xpos + swidth & & mouseY > ypos & & mouseY < ypos + sheight)
{
retourne la valeur true ;
}
d’autre
{
retourne la valeur false ;
}
}
display() Sub
{
noStroke() ;
Fill(204) ;
Rect (PosX, Posy, swidth, sheight) ;
if(over || Locked)
{
remplissage (0, 0, 0) ;
}
d’autre
{
remplissage (102, 102, 102) ;
}
Rect (spos, ypos, sheight, sheight) ;
}
flotteur getPos()
{
retour des spos * ratio ;
}
}