Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

78
LINES

< > BotCompany Repo | #1014272 // Optimized "Marshall Servo Position" Gauge with background image v2 (paint only on change, OK)

JavaX source code (desktop) [tags: use-pretranspiled] - run with: x30.jar

Download Jar. Uses 994K of libraries. Click here for Pure Java version (7037L/36K).

1  
!7
2  
3  
p { pMain(Gauge); }
4  
5  
sclass Gauge extends PApplet {
6  
7  
/* *************  L3Dnam - may2015  ****************** 
8  
This sketch demonstrate how to use PNG images from a gauge and an arrow, to make a fully functional
9  
"real like" Gauge responding for the Mouse-X movement, showing angles for a Servo position (0º to 180º) 
10  
for example!  Need 2 PNG images on Data subFolder inside the Sketch folder.
11  
Marshall B&P gauge.png  and  marshall B&P ponteiro.png. -->  Both images must have no Background.
12  
Create your own png images from real gauges or Other Objetcs and Enjoy.
13  
*/
14  
15  
PImage mostrador, ponteiro; //both images on DATA subfolder
16  
PFont fontA;
17  
int Tx, Ty, P0, P180;       // Tx/Ty position text indicator  P0/P180 start & End point of Arrow
18  
int Wsize1 = 300;   //Wsize1  &  Wsize2 = tamanho janela 
19  
int Wsize2 = 300;
20  
int gauge;       // Gauge1 and Gauge2 are 2 example gauges,  choose one of them on line 20
21  
float value, maxValue = 180, precision = 0.1f;
22  
23  
void mouseMoved() {
24  
  float oldValue = value, newValue = map(mouseX, 0, width, 0, maxValue);
25  
  value = newValue;
26  
  if (floorRatio(oldValue, precision) != floorRatio(newValue, precision))
27  
    redraw();
28  
}
29  
30  
void settings() {
31  
  size (Wsize1,Wsize2 /*,OPENGL XXX*/);
32  
}
33  
34  
void setup() {
35  
/******************************************************************/  
36  
 gauge = 1;     // Gauge Type 1,  choose 2 for another Gauge
37  
/******************************************************************/   
38  
switch (gauge) {
39  
  case 1: 
40  
      mostrador = loadImage(loadImageAsFilePath(#1101160)/*"Gauge B&P Marshall 180.png"*/);
41  
      ponteiro = loadImage(loadImageAsFilePath(#1101161)/*"marshall B&P ponteiro.png"*/); //loadImage("Ponteiro_Vermelho.png");
42  
      Tx=-20 ;  Ty=58; P0=0  ;  P180=272 ;
43  
    break;
44  
  case 2: 
45  
      mostrador = loadImage("gauge.png");
46  
      ponteiro = loadImage(loadImageAsFilePath(#1101162)/*"Ponteiro_Vermelho.png"*/); //loadImage("Ponteiro_Vermelho.png");
47  
      Tx=-17 ;  Ty=74; P0=-226  ;  P180=46 ;
48  
    break;
49  
 }
50  
 imageMode(CENTER);
51  
 fontA = createFont(libraryPath(#1014271/*"dutcheb.ttf"*/), 20); //numeric indication of the Angle
52  
 textFont(fontA);
53  
 
54  
 noLoop();
55  
}
56  
57  
58  
void draw() {
59  
  background(177);
60  
  stroke(153);
61  
  translate(Wsize1/2, Wsize2/2); // posiciona o mostrador no centro da tela
62  
  image(mostrador, 0 , 0 , Wsize1*0.9f, Wsize2*0.9f); // imagem, coluna, linha, Widt, Height
63  
  float rodar = map(value, 0,maxValue,P0,P180); //mouseX movement 0 & 360 grauss for Arrow
64  
  float angulo = map(value, 0,maxValue,0,181); //Numeric mouseX movement 0 & 360 grauss
65  
     fill(255,255,255);                      // Text Color = Blank
66  
     text((int) angulo, Tx,Ty);              // Position of Text with Numeric Angle
67  
     rotate(radians((int) rodar));            // Rotate the Arrow as "rodar" value
68  
switch(gauge) {
69  
  case 1: 
70  
      image(ponteiro, -22.9f, 23.1f, Wsize1*0.33f, Wsize2*0.33f); // imagem, coluna, linha, Widt, Height
71  
    break;
72  
  case 2: 
73  
      image(ponteiro, 21.5f, 0.2f, Wsize1*0.43f, Wsize2*0.06f); // imagem, coluna, linha, Widt, Height
74  
    break;     
75  
  }
76  
}
77  
78  
}

Author comment

Began life as a copy of #1014268

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

Comments [hide]

ID Author/Program Comment Date
1369 stefan see PGauge 2018-04-19 17:37:42

add comment

Snippet ID: #1014272
Snippet name: Optimized "Marshall Servo Position" Gauge with background image v2 (paint only on change, OK)
Eternal ID of this version: #1014272/6
Text MD5: def57b74813770ee35bcbd6b08859cc7
Transpilation MD5: 9d9481047200ad2c50983c7d1073af34
Author: stefan
Category: javax
Type: JavaX source code (desktop)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-04-19 17:35:52
Source code size: 3119 bytes / 78 lines
Pitched / IR pitched: No / No
Views / Downloads: 467 / 1039
Version history: 5 change(s)
Referenced in: [show references]