Update
This commit is contained in:
parent
4c23e1c3ed
commit
1e91428ce6
@ -2,8 +2,13 @@
|
|||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
<classpathentry combineaccessrules="false" kind="src" path="/New2DGame"/>
|
|
||||||
<classpathentry combineaccessrules="false" kind="src" path="/DrakeEngine2"/>
|
|
||||||
<classpathentry kind="lib" path="D:/Programmazione/Java/Progetti Eclipse/GatePack/libs/objenesis-2.4.jar"/>
|
<classpathentry kind="lib" path="D:/Programmazione/Java/Progetti Eclipse/GatePack/libs/objenesis-2.4.jar"/>
|
||||||
|
<classpathentry kind="src" path="res"/>
|
||||||
|
<classpathentry kind="lib" path="D:/Users/Andrea/Downloads/PNGDecoder.jar"/>
|
||||||
|
<classpathentry kind="lib" path="D:/Programmazione/Java/Progetti Eclipse/lwjgl-3.0.0b-raspberry/jar/lwjgl.jar">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="D:/Programmazione/Java/Progetti Eclipse/lwjgl-3.0.0b-raspberry/native"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -3,8 +3,10 @@ encoding//src/org/nevec/rjm/BigSurd.java=UTF-8
|
|||||||
encoding//src/org/nevec/rjm/BigSurdVec.java=UTF-8
|
encoding//src/org/nevec/rjm/BigSurdVec.java=UTF-8
|
||||||
encoding//src/org/nevec/rjm/NumeroAvanzato.java=UTF-8
|
encoding//src/org/nevec/rjm/NumeroAvanzato.java=UTF-8
|
||||||
encoding//src/org/nevec/rjm/NumeroAvanzatoVec.java=UTF-8
|
encoding//src/org/nevec/rjm/NumeroAvanzatoVec.java=UTF-8
|
||||||
|
encoding//src/org/warp/engine/lwjgl/Display.java=UTF-8
|
||||||
encoding//src/org/warpgate/pi/calculator/Main.java=UTF-8
|
encoding//src/org/warpgate/pi/calculator/Main.java=UTF-8
|
||||||
encoding//src/org/warpgate/pi/calculator/Parentesi.java=UTF-8
|
encoding//src/org/warpgate/pi/calculator/Parentesi.java=UTF-8
|
||||||
encoding//src/org/warpgate/pi/calculator/Radice.java=UTF-8
|
encoding//src/org/warpgate/pi/calculator/Radice.java=UTF-8
|
||||||
encoding//src/org/warpgate/pi/calculator/RadiceQuadrata.java=UTF-8
|
encoding//src/org/warpgate/pi/calculator/RadiceQuadrata.java=UTF-8
|
||||||
encoding//src/org/warpgate/pi/calculator/Simboli.java=UTF-8
|
encoding//src/org/warpgate/pi/calculator/Simboli.java=UTF-8
|
||||||
|
encoding//src/org/warpgate/pi/calculator/screens/EquationScreen.java=UTF-8
|
||||||
|
@ -220,7 +220,7 @@ public class BigDecimalMath
|
|||||||
break ;
|
break ;
|
||||||
s = s.add(x.divide(s,locmc)).divide(half,locmc) ;
|
s = s.add(x.divide(s,locmc)).divide(half,locmc) ;
|
||||||
/* debugging*/
|
/* debugging*/
|
||||||
System.out.println("itr "+x.round(locmc).toString() + " " + s.round(locmc).toString()) ;
|
//System.out.println("itr "+x.round(locmc).toString() + " " + s.round(locmc).toString()) ;
|
||||||
}
|
}
|
||||||
return s ;
|
return s ;
|
||||||
} /* BigDecimalMath.sqrt */
|
} /* BigDecimalMath.sqrt */
|
||||||
|
@ -1,20 +1,22 @@
|
|||||||
package org.warpgate.pi.calculator;
|
package org.warpgate.pi.calculator;
|
||||||
|
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
import org.nevec.rjm.NumeroAvanzatoVec;
|
||||||
|
import org.warp.engine.lwjgl.Screen;
|
||||||
|
|
||||||
public class Calculator {
|
public class Calculator {
|
||||||
|
|
||||||
public Calculator(boolean b) {
|
public static String angleMode = "deg";
|
||||||
Utils.debugOn = b;
|
public static Screen[] sessions = new Screen[5];
|
||||||
}
|
public static int currentSession = 0;
|
||||||
|
public static boolean haxMode = true;
|
||||||
public Termine calcolarisultato(String string) throws Errore {
|
|
||||||
|
public static Termine calcolarisultato(String string) throws Errore {
|
||||||
System.out.println("INPUT: " + string);
|
System.out.println("INPUT: " + string);
|
||||||
Parentesi espressione = new Parentesi(string);
|
Parentesi espressione = new Parentesi(string);
|
||||||
return espressione.calcola();
|
return espressione.calcola();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisultatoEquazione calcolaequazione(String string) throws Errore {
|
public static RisultatoEquazione calcolaequazione(String string) throws Errore {
|
||||||
if (string.split("=").length == 0) {
|
if (string.split("=").length == 0) {
|
||||||
return new RisultatoEquazione(new Termine("0"), true);
|
return new RisultatoEquazione(new Termine("0"), true);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import java.awt.Graphics;
|
|||||||
|
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
import org.nevec.rjm.NumeroAvanzatoVec;
|
||||||
import org.nevec.rjm.Rational;
|
import org.nevec.rjm.Rational;
|
||||||
import org.warp.engine.Display;
|
|
||||||
|
|
||||||
public class Divisione extends FunzioneDueValori {
|
public class Divisione extends FunzioneDueValori {
|
||||||
|
|
||||||
@ -37,17 +36,17 @@ public class Divisione extends FunzioneDueValori {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(int x, int y, Display g, boolean small, boolean drawMinus) {
|
public void draw(int x, int y, boolean small, boolean drawMinus) {
|
||||||
boolean beforedrawminus = this.drawMinus;
|
boolean beforedrawminus = this.drawMinus;
|
||||||
this.drawMinus = drawMinus;
|
this.drawMinus = drawMinus;
|
||||||
draw(x, y, g, small);
|
draw(x, y, small);
|
||||||
this.drawMinus = beforedrawminus;
|
this.drawMinus = beforedrawminus;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean drawMinus = true;
|
private boolean drawMinus = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(int x, int y, Display g, boolean small) {
|
public void draw(int x, int y, boolean small) {
|
||||||
Object var1 = variable1;
|
Object var1 = variable1;
|
||||||
Object var2 = variable2;
|
Object var2 = variable2;
|
||||||
small = true;
|
small = true;
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
package org.warpgate.pi.calculator;
|
package org.warpgate.pi.calculator;
|
||||||
|
|
||||||
import org.warp.engine.Display;
|
|
||||||
|
|
||||||
import com.rits.cloning.Cloner;
|
import com.rits.cloning.Cloner;
|
||||||
|
|
||||||
public interface Funzione {
|
public interface Funzione {
|
||||||
public String simbolo();
|
public String simbolo();
|
||||||
public Termine calcola() throws Errore;
|
public Termine calcola() throws Errore;
|
||||||
public void draw(int x, int y, Display g, boolean small);
|
public void draw(int x, int y, boolean small);
|
||||||
public int getWidth();
|
public int getWidth();
|
||||||
public int getHeight(boolean small);
|
public int getHeight(boolean small);
|
||||||
public int getLine(boolean small);
|
public int getLine(boolean small);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package org.warpgate.pi.calculator;
|
package org.warpgate.pi.calculator;
|
||||||
|
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
import org.nevec.rjm.NumeroAvanzatoVec;
|
||||||
import org.warp.engine.Display;
|
|
||||||
|
|
||||||
import com.rits.cloning.Cloner;
|
import com.rits.cloning.Cloner;
|
||||||
|
|
||||||
|
@ -1,216 +1,34 @@
|
|||||||
package org.warpgate.pi.calculator;
|
package org.warpgate.pi.calculator;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Font;
|
import java.io.PrintWriter;
|
||||||
import java.awt.Graphics;
|
import java.io.StringWriter;
|
||||||
import java.awt.Graphics2D;
|
|
||||||
import java.awt.image.BufferStrategy;
|
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import org.warp.engine.lwjgl.Display;
|
||||||
|
import org.warpgate.pi.calculator.screens.EmptyScreen;
|
||||||
|
import org.warpgate.pi.calculator.screens.EquationScreen;
|
||||||
|
|
||||||
import org.gatecraft.game2d.utils.BitmapImage;
|
|
||||||
import org.nevec.rjm.NumeroAvanzato;
|
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
|
||||||
import org.nevec.rjm.Rational;
|
|
||||||
import org.warp.engine.ActionInterface;
|
|
||||||
import org.warp.engine.Display;
|
|
||||||
import javafx.animation.KeyFrame;
|
import javafx.animation.KeyFrame;
|
||||||
import javafx.animation.Timeline;
|
import javafx.animation.Timeline;
|
||||||
import javafx.event.Event;
|
import javafx.event.Event;
|
||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
|
|
||||||
public class Main implements ActionInterface {
|
public class Main {
|
||||||
public static final int[] screenSize = new int[]{300, 150};
|
public static final int[] screenSize = new int[]{480, 320};
|
||||||
public static final int screenScale = 1;
|
public static final int screenScale = 1;
|
||||||
public volatile static Display d;
|
public static Display d;
|
||||||
|
public static Main instance;
|
||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
public Main() throws InterruptedException {
|
||||||
public Main() {
|
instance = this;
|
||||||
Display.start(this, screenSize[0], screenSize[1]);
|
d = new Display(new EmptyScreen(), screenSize[0], screenSize[1]);
|
||||||
d = Display.INSTANCE;
|
d.setBackground(0.796875f, 0.90234375f, 0.828125f);
|
||||||
d.g().setFill(new javafx.scene.paint.Color(0.796875, 0.90234375, 0.828125, 1));
|
Thread t = new Thread("Graphic thread"){@Override public void run() {d.run("");}};
|
||||||
d.g().fillRect(0, 0, screenSize[0], screenSize[0]);
|
t.start();
|
||||||
Utils.writeLetter(d, "Loading...".toUpperCase(), (screenSize[0]-Utils.getPlainTextWidth("Loading...".toUpperCase()))/2, (screenSize[1]-Utils.getFontHeight(false))/2, false);
|
|
||||||
|
|
||||||
try {
|
|
||||||
//Parentesi f = new Parentesi("(Ⓐ(2X)*3Y)/(5Z^2)+(Ⓐ(11A)*13B)/(7CZ)=19XZ");
|
|
||||||
//PARENTESI CON CALCOLI
|
|
||||||
//Funzione f = new Sottrazione(new Somma(new Parentesi("Ⓐ9/2+Ⓐ7/2", "").calcola(), new Termine("3.5")), new Parentesi("3*2√14","").calcola());
|
|
||||||
//PARENTESI CON DUE NUMERI FRAZIONALI COMPLETI CON INCOGNITE:
|
|
||||||
//Funzione f = new Parentesi("(Ⓐ(2X)*3Y)/(5Z^2)+(Ⓐ(11A)*13B)/(7CZ)", "");
|
|
||||||
//PARENTESI CON DUE NUMERI FRAZIONALI DISALLINEATI GRAFICAMENTE:
|
|
||||||
//Funzione f = new Parentesi("((5^2-1)/2)/5-5/(5/2)=2", "");
|
|
||||||
//TERMINE DI PROVA COMPLETO:
|
|
||||||
//Funzione f = new Termine(new NumeroAvanzato(new Rational(3, 2), new Rational(7, 1), new Incognite(new Incognita('X', Rational.ONE)), new Incognite(new Incognita('Y', Rational.ONE)), new Incognite(new Incognita('z', Rational.ONE))));
|
|
||||||
//PARENTESI REALISTICA CON INCOGNITE:
|
|
||||||
//Funzione f = new Equazione(new Parentesi("X^2+(MX-M+4)^2-4X-4(MX-M+4)^2+7", ""), new Termine("0"));
|
|
||||||
//POTENZA:
|
|
||||||
//Funzione f = new Parentesi("(MX-M+4)^2", "");
|
|
||||||
//NUMERO SEMPLICE LUNGO:
|
|
||||||
//Funzione f = new Parentesi("-1219999799999996934.42229", "");
|
|
||||||
//:
|
|
||||||
//Funzione f = new Parentesi("5Y+XY=2", "")
|
|
||||||
equazione = "";
|
|
||||||
c = new Calculator(true);
|
|
||||||
f = new Parentesi(equazione);
|
|
||||||
f2 = f.calcolaSistema();
|
|
||||||
|
|
||||||
|
|
||||||
ew1 = f.getWidth();
|
|
||||||
ew2 = f2.getWidth();
|
|
||||||
eh2 = f2.getHeight(false);
|
|
||||||
x1 = 2;
|
|
||||||
x2 = 2;
|
|
||||||
requiresleep1 = false;
|
|
||||||
requiresleep2 = false;
|
|
||||||
aftersleep = false;
|
|
||||||
autoscroll = false;
|
|
||||||
|
|
||||||
final Timeline timeline = new Timeline();
|
|
||||||
timeline.setCycleCount(Timeline.INDEFINITE);
|
|
||||||
timeline.setAutoReverse(true);
|
|
||||||
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(1000/25), new EventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handle(Event arg0) {
|
|
||||||
refresh();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
timeline.play();
|
|
||||||
/*
|
|
||||||
long start = System.nanoTime();
|
|
||||||
Termine result = c.calcolarisultato("((5^2+3√(100/0.1))*Ⓐ7+9/15*2√(26/2))/21");
|
|
||||||
long end = System.nanoTime();
|
|
||||||
long timeElapsed = end-start;
|
|
||||||
System.out.println("RESULT: " + result);
|
|
||||||
System.out.println("DECIMAl RESULT: " + result.getTerm().toBigDecimal());
|
|
||||||
System.out.println("Time elapsed: " + (double) timeElapsed / 1000000000 + "\n");
|
|
||||||
|
|
||||||
|
|
||||||
start = System.nanoTime();
|
|
||||||
RisultatoEquazione eresult = c.calcolaequazione("((5^2+3√(100/0.1))*Ⓐ7+9/15*2√(26/2))/21=(175*(2√7)+3*(2√13))/105");
|
|
||||||
end = System.nanoTime();
|
|
||||||
timeElapsed = end-start;
|
|
||||||
System.out.println("Is an equation: " + eresult.isAnEquation);
|
|
||||||
System.out.println("L-R: " + eresult.LR);
|
|
||||||
System.out.println("Time elapsed: " + (((double) timeElapsed / 1000000000)) + "\n");
|
|
||||||
*/
|
|
||||||
} catch (Errore e) {
|
|
||||||
d.setColor(new Color(204, 231, 212));
|
|
||||||
d.fillRect(0, 0, screenSize[0], screenSize[1]);
|
|
||||||
|
|
||||||
Utils.writeLetter(d, e.id.toString(), 2, 2, false);
|
|
||||||
|
|
||||||
System.err.println(e.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static volatile String equazione = "";
|
|
||||||
public static Calculator c;
|
|
||||||
public static Parentesi f;
|
|
||||||
public static Funzione f2;
|
|
||||||
public static int ew1;
|
|
||||||
public static int ew2;
|
|
||||||
public static int eh2;
|
|
||||||
public static int x1;
|
|
||||||
public static int x2;
|
|
||||||
public static boolean requiresleep1;
|
|
||||||
public static boolean requiresleep2;
|
|
||||||
public static boolean aftersleep;
|
|
||||||
public static boolean autoscroll;
|
|
||||||
|
|
||||||
protected static void refresh() {
|
|
||||||
long delta = System.currentTimeMillis();
|
|
||||||
d.setColor(new Color(204, 231, 212));
|
|
||||||
d.fillRect(0, 0, screenSize[0], screenSize[1]);
|
|
||||||
|
|
||||||
if (equazione == "") {
|
|
||||||
d.setColor(Color.BLACK);
|
|
||||||
d.drawString("Scrivi qua sopra un'espressione,".toUpperCase(), 10, 20);
|
|
||||||
d.drawString("dopodiche premi il tasto execute".toUpperCase(), 10, 35);
|
|
||||||
d.setColor(Color.RED);
|
|
||||||
d.drawBoldString( "Leggi ATTENZIONE.txt!".toUpperCase(), 10, 60);
|
|
||||||
} else {
|
|
||||||
if (ew1 + x1 + 5 > screenSize[0] && !requiresleep1 && autoscroll) {
|
|
||||||
x1-=1;
|
|
||||||
} else if(autoscroll) {
|
|
||||||
requiresleep1 = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ew2 + x2 + 5 > screenSize[0] && !requiresleep2 && autoscroll) {
|
|
||||||
x2-=1;
|
|
||||||
} else if(autoscroll) {
|
|
||||||
requiresleep2 = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (requiresleep1 && requiresleep2 && autoscroll) {
|
|
||||||
requiresleep1 = false;
|
|
||||||
requiresleep2 = false;
|
|
||||||
try {
|
|
||||||
Thread.sleep(500);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
x1 = 2;
|
|
||||||
x2 = 2;
|
|
||||||
aftersleep = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
f.draw(x1,2,d, false);
|
|
||||||
f2.draw(x2,screenSize[1]-2-eh2,d, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (aftersleep && autoscroll) {
|
|
||||||
aftersleep = false;
|
|
||||||
try {
|
|
||||||
Thread.sleep(500);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
delta = System.currentTimeMillis() - delta;
|
|
||||||
if (50-delta > 0 && autoscroll) {
|
|
||||||
Thread.sleep(50-delta);
|
|
||||||
}
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws InterruptedException {
|
public static void main(String[] args) throws InterruptedException {
|
||||||
new Main();
|
new Main();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public synchronized void refresh(String args) {
|
|
||||||
equazione = args.replace("sqrt", "Ⓐ").replace("^", "Ⓑ");
|
|
||||||
c = new Calculator(true);
|
|
||||||
try {
|
|
||||||
f = new Parentesi(equazione);
|
|
||||||
} catch (Errore e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
f2 = f.calcolaSistema();
|
|
||||||
} catch (Errore e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
ew1 = f.getWidth();
|
|
||||||
ew2 = f2.getWidth();
|
|
||||||
eh2 = f2.getHeight(false);
|
|
||||||
x1 = 2;
|
|
||||||
x2 = 2;
|
|
||||||
requiresleep1 = false;
|
|
||||||
requiresleep2 = false;
|
|
||||||
aftersleep = false;
|
|
||||||
autoscroll = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,6 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
import org.nevec.rjm.NumeroAvanzato;
|
import org.nevec.rjm.NumeroAvanzato;
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
import org.nevec.rjm.NumeroAvanzatoVec;
|
||||||
import org.warp.engine.Display;
|
|
||||||
|
|
||||||
public class Parentesi extends FunzioneMultipla {
|
public class Parentesi extends FunzioneMultipla {
|
||||||
|
|
||||||
@ -356,6 +355,7 @@ public class Parentesi extends FunzioneMultipla {
|
|||||||
fase = "sistemi"; //SESTA FASE
|
fase = "sistemi"; //SESTA FASE
|
||||||
} else {
|
} else {
|
||||||
System.out.println("errore?");//BOH
|
System.out.println("errore?");//BOH
|
||||||
|
throw new Errore(Errori.SYNTAX_ERROR);
|
||||||
}
|
}
|
||||||
while (i < funzioniOLD.size() && change == false && funzioniOLD.size() > 1) {
|
while (i < funzioniOLD.size() && change == false && funzioniOLD.size() > 1) {
|
||||||
Funzione funzioneTMP = funzioniOLD.get(i);
|
Funzione funzioneTMP = funzioniOLD.get(i);
|
||||||
|
@ -11,7 +11,6 @@ import org.nevec.rjm.BigDecimalMath;
|
|||||||
import org.nevec.rjm.NumeroAvanzato;
|
import org.nevec.rjm.NumeroAvanzato;
|
||||||
import org.nevec.rjm.NumeroAvanzatoVec;
|
import org.nevec.rjm.NumeroAvanzatoVec;
|
||||||
import org.nevec.rjm.Rational;
|
import org.nevec.rjm.Rational;
|
||||||
import org.warp.engine.Display;
|
|
||||||
|
|
||||||
import com.rits.cloning.Cloner;
|
import com.rits.cloning.Cloner;
|
||||||
|
|
||||||
|
@ -13,8 +13,6 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
import org.nevec.rjm.BigDecimalMath;
|
import org.nevec.rjm.BigDecimalMath;
|
||||||
import org.nevec.rjm.Rational;
|
import org.nevec.rjm.Rational;
|
||||||
import org.warp.engine.Display;
|
|
||||||
import org.warp.engine.Display.Font;
|
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
||||||
@ -23,8 +21,6 @@ public class Utils {
|
|||||||
|
|
||||||
public static final int scaleMode = BigDecimal.ROUND_HALF_UP;
|
public static final int scaleMode = BigDecimal.ROUND_HALF_UP;
|
||||||
public static final RoundingMode scaleMode2 = RoundingMode.HALF_UP;
|
public static final RoundingMode scaleMode2 = RoundingMode.HALF_UP;
|
||||||
public static final Font fontBig = new Font("CalcBig", Font.PLAIN, 16);
|
|
||||||
public static final Font fontSmall = new Font("CalcSmall", Font.PLAIN, 16);
|
|
||||||
|
|
||||||
public static DebugStream debug = new DebugStream();
|
public static DebugStream debug = new DebugStream();
|
||||||
|
|
||||||
@ -337,21 +333,6 @@ public class Utils {
|
|||||||
g.drawOrthoLine(x+3, y, x+3+1+w1+2, y);
|
g.drawOrthoLine(x+3, y, x+3+1+w1+2, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final int getPlainTextWidth(String text) {
|
|
||||||
Graphics graphics = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB).getGraphics();
|
|
||||||
// get metrics from the graphics
|
|
||||||
FontMetrics metrics = graphics.getFontMetrics(fontBig.getFontAwt());
|
|
||||||
// get the advance of my text in this font
|
|
||||||
// and render context
|
|
||||||
int adv = metrics.stringWidth(text);
|
|
||||||
// calculate the size of a box to hold the
|
|
||||||
// text with some padding.
|
|
||||||
if (adv > 0) {
|
|
||||||
adv-=1;
|
|
||||||
}
|
|
||||||
return adv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final int getFontHeight() {
|
public static final int getFontHeight() {
|
||||||
return getFontHeight(false);
|
return getFontHeight(false);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user