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

81
LINES

< > BotCompany Repo | #1014275 // PGauge - gauge display in Processing

JavaX fragment (include)

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; }
}

Author comment

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: 345 / 916
Version history: 18 change(s)
Referenced in: [show references]