sclass PGauge extends PApplet2 {
PImage mostrador, ponteiro; //both images on DATA subfolder
PFont fontA;
int Tx, Ty, P0, P180; // Tx/Ty position text indicator P0/P180 start & End point of Arrow
int Wsize1 = 300; //Wsize1 & Wsize2 = tamanho janela
int Wsize2 = 300;
int gauge = 1; // Gauge1 and Gauge2 are 2 example gauges
float value, maxValue = 180, precision = 0.1f;
bool demo;
void mouseMoved() {
if (demo)
setValue(map(mouseX, 0, width, 0, maxValue));
}
bool setValue(double newValue, S title) {
setTitle(title);
ret setValue(newValue);
}
bool setValue(double newValue) {
ret setValue((float) newValue);
}
bool setValue(float newValue) {
float oldValue = value;
value = newValue;
if (floorRatio(oldValue, precision) != floorRatio(newValue, precision))
ret true with redraw();
false;
}
void settings() {
size (Wsize1,Wsize2 /*,OPENGL XXX*/);
}
void setup() {
super.setup();
switch (gauge) {
case 1:
mostrador = loadImage(loadImageAsFilePath(#1101160)/*"Gauge B&P Marshall 180.png"*/);
ponteiro = loadImage(loadImageAsFilePath(#1101161)/*"marshall B&P ponteiro.png"*/); //loadImage("Ponteiro_Vermelho.png");
Tx=-20 ; Ty=58; P0=0 ; P180=272 ;
break;
case 2:
mostrador = loadImage(loadImageAsFilePath(#1101163)/*"gauge.png"*/);
ponteiro = loadImage(loadImageAsFilePath(#1101162)/*"Ponteiro_Vermelho.png"*/); //loadImage("Ponteiro_Vermelho.png");
Tx=-17 ; Ty=74; P0=-226 ; P180=46 ;
break;
}
imageMode(CENTER);
fontA = createFont(libraryPath(#1014271/*"dutcheb.ttf"*/), 20); //numeric indication of the Angle
textFont(fontA);
noLoop();
}
void draw() {
background(177);
stroke(153);
translate(Wsize1/2, Wsize2/2); // posiciona o mostrador no centro da tela
image(mostrador, 0 , 0 , Wsize1*0.9f, Wsize2*0.9f); // imagem, coluna, linha, Widt, Height
float rodar = min(P180*1.05f, map(value, 0,maxValue,P0,P180)); //mouseX movement 0 & 360 grauss for Arrow
float angulo = map(value, 0,maxValue,0,181); //Numeric mouseX movement 0 & 360 grauss
fill(255,255,255); // Text Color = Blank
text((int) angulo, Tx,Ty); // Position of Text with Numeric Angle
rotate(radians((int) rodar)); // Rotate the Arrow as "rodar" value
switch(gauge) {
case 1:
image(ponteiro, -22.9f, 23.1f, Wsize1*0.33f, Wsize2*0.33f); // imagem, coluna, linha, Widt, Height
break;
case 2:
image(ponteiro, 21.5f, 0.2f, Wsize1*0.43f, Wsize2*0.06f); // imagem, coluna, linha, Widt, Height
break;
}
}
PGauge type(int type) { gauge = type; this; }
}Began life as a copy of #1014272
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1014275 |
| Snippet name: | PGauge - gauge display in Processing |
| Eternal ID of this version: | #1014275/19 |
| Text MD5: | 51a61742980ed4322a037085e77aa49d |
| Author: | stefan |
| Category: | javax |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2018-06-30 15:35:49 |
| Source code size: | 2861 bytes / 81 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 947 / 1430 |
| Version history: | 18 change(s) |
| Referenced in: | [show references] |