# Mathematische Förmeln darstellen



## sTaX (9. Jan 2009)

Hi,
ich möchte gerne in einer GUI Mathematische Formeln sauber und ordentlich darstellen.
Geht das überhaupt ohne alles einzeln zu zeichnen?


----------



## hdi (9. Jan 2009)

Am besten eine abstrakte Klasse

```
abstract class MathLiteral{

    private int x, y; // evtl noch "width, height"

    public MathLiteral(int x,int y){
          this.x= x;
          this.y= y;
    }

    // Setter und Getter für x, y

    public abstract void paint(Graphics g);
}
```

und dann sinnvoll spezifische Klassen erstellen, bsp:


```
class Bruch extends MathLiteral{

   private MathLiteral zaehler, nenner;

   public Bruch(MathLiteral z, MathLiteral n, int x, int y){
           super(x,y);
           zaehler = z;
           nenner = n;
   }

   @Override
   public void paint(Graphics g){
        zaehler.paint(g);
        this.setY( this.getY() + 10);
        g.drawLine(x,y, Math.max(zaehler.getWidth(), nenner.getWidth());
        this.setY(this.getY() + 10);
        nenner.paint(g);
   }
```
Iiiiiirgendwie so  Macht jetzt alles nicht viel Sinn, aber ich hoffe du siehst in welche Richtung ich damit
geh. Ein MathLiteral ist alles: Sowohl eine kleinste Zahl bis hin zur kompletten Formel. Jetzt musst du sie 
nur gut verschachteln, und wenn du von außen deine Formel einliest, erstellst du nach und nach die einzelnen
Elemente, also Brüche etc, und gibst ihnen entsprechende Koordinaten mit. Die kannst du ja berechnen an
der Stelle, wo du die komplette Formel kennst.


----------



## sTaX (9. Jan 2009)

Gibt es sowas nicht schon fertig.
Ist ja eine menge Arbeit.

Ich werde ja wohl nicht der erste sein, der das machen möchte


----------



## hdi (9. Jan 2009)

> Gibt es sowas nicht schon fertig.


Bestimmt.



> Ist ja eine menge Arbeit.


Und eines der besten Bsp für das Üben von OO-Programmierung mit Polymorphismus.



> Ich werde ja wohl nicht der erste sein, der das machen möchte


Nein, aber wenn *du* es *machen* möchtest, dann kann es dir egal sein
ob es das schon gibt oder nicht. Ich meine willst du was Programmieren oder suchst
du eine Software zur Benutzung?


----------



## robsc (19. Mrz 2009)

schau dir mal JMathTex
JMathTeX
an. Damit sollten sich Formeln rendern lassen...


----------



## 0x7F800000 (19. Mrz 2009)

Naja, wenn man irgendwie in der lage gewesen ist, irgendwo den parse baum herzubekommen, und diesen in einen ordentlichen Formel-Baum umzuwandeln, dann bleibt ja fast nichts mehr zu tun, läuft ab da von selbst...


----------

