ANDROID + ARDUINOADK + RGB ledde (2 / 6 steg)
Steg 2: bearbetning app
Dessutom börja behandla i java-läge. först då kan du se resultatet i java.
här är koden:
HScrollbar hs1, hs2, hs3; initialisera rullningslisten
PFont f;
void setup()
{
storlek (800, 480); beskriva storleken på fönstret
f = loadFont("ComicSansMS-Bold-48.vlw"); skapa typsnitt. bara för att Visa
noStroke();
int x1 = höjd/4;
HS1 = nya HScrollbar (0, x 1 + 30, bredd-220, 16, 16);
HS2 = nya HScrollbar (0, 2 * x 1 + 30, bredd-220, 16, 16);
HS3 = nya HScrollbar (0, 3 * x 1 + 30, bredd-220, 16, 16);
}
void draw() {
Background(255);
textFont(f);
Fill(63,232,34);
text ("RGB Color Selector", 5, 80);
Fill(0);
flyta img1Pos = hs1.getPos();
Fill(255,0,0);
flyta img2Pos = hs2.getPos();
Fill(0,255,0);
flyta img3Pos = hs3.getPos();
Fill(0,0,255);
flyta r = karta (img1Pos, 0, bredd-200,0,255);
flyta g = karta (img2Pos, 0, bredd-200,0,255);
flyta b = karta (img3Pos, 0, bredd-200,0,255);
int rr, gg, bb;
RR=int(r);
gg=int(g);
BB=int(b);
HS1.Update(); att få nuvarande plats
HS2.Update();
HS3.Update();
HS3.display();
HS1.display();
HS2.display();
Fill(RR,gg,BB);
strokeWeight(2);
Smooth();
ellips (700, 250, 190, 190);
stroke(0);
}
klass HScrollbar
{
int swidth, sheight;
float xpos, ypos;
float haft, newspos;
float sposMin, sposMax;
int lös;
booleska över;
Boolean låst;
flyta mellan.
HScrollbar (flyta xp, flyta yp, int sw, int sh, int l)
{
swidth = sw;
sheight = sh;
int widthtoheight = sw - sh;
ratio = (float) sw / (float) widthtoheight;
Xpos = xp;
ypos = yp-sheight/2;
gå = xpos + swidth/2-sheight/2.
newspos = gå;
sposMin = xpos;
sposMax = xpos + swidth - sheight;
Loose = l;
}
void update()
{
IF(overEvent()) {
över = sant;
} annat {
över = false;
}
om (mousePressed & & över) {
låst = sant;
}
IF(!mousePressed) {
låst = false;
}
IF(Locked) {
newspos = begränsa (mouseX-sheight/2, sposMin, sposMax);
}
om (abs (newspos - gå) > 1) {
gå = gå + (newspos-gå) / lös;
}
}
float begränsa (flyta val, flyta minv, flyta maxv)
{
returnera min (max (val, minv), maxv);
}
Boolean overEvent()
{
om (mouseX > xpos & & mouseX < xpos + swidth & & mouseY > ypos & & mouseY < ypos + sheight)
{
return true;
}
annat
{
returnera false;
}
}
void display()
{
noStroke();
Fill(204);
rect (xpos ypos, swidth, sheight);
IF(over || Locked)
{
fyllning (0, 0, 0);
}
annat
{
fyllning (102, 102, 102);
}
rect (haft ypos, sheight, sheight);
}
float getPos()
{
returnera haft * förhållandet;
}
}