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

79
LINES

< > BotCompany Repo | #1016727 // PGauge_processing2 - gauge display in Processing 2

JavaX fragment (include) [tags: archive]

sclass PGauge_processing2 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));
  }
  
  void setValue(double newValue, S title) {
    setValue(newValue);
    setTitle(title);
  }
  
  void setValue(double newValue) {
    setValue((float) newValue);
  }
  
  void setValue(float newValue) {
    float oldValue = value;
    value = newValue;
    if (floorRatio(oldValue, precision) != floorRatio(newValue, precision))
      redraw();
  }
  
  void settings() {
    size (Wsize1,Wsize2 /*,OPENGL XXX*/);
  }
  
  void setup() {
  settings();
  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_processing2 type(int type) { gauge = type; this; }
}

Author comment

Began life as a copy of #1014275

download  show line numbers  debug dex  old transpilations   

Travelled to 2 computer(s): cfunsshuasjs, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1016727
Snippet name: PGauge_processing2 - gauge display in Processing 2
Eternal ID of this version: #1016727/3
Text MD5: 31d02287b6633f7451f965cc9a3a4fe9
Author: stefan
Category: javax
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): Yes
Created/modified: 2018-06-30 14:57:36
Source code size: 2844 bytes / 79 lines
Pitched / IR pitched: No / No
Views / Downloads: 321 / 337
Version history: 2 change(s)
Referenced in: [show references]