Gleichung auslesen und dann damit Rechnen?

Status
Nicht offen für weitere Antworten.

Basti

Mitglied
hey leute..
ich möchte gern ein programm schreiben, das mir einfache mathematische funktionen zeichnet.
hab die GUI und die funktion die generell zeichnet schon implementiert.

nun wollte ich aber noch hinzufügen das man in ein textfeld die funktion eintippt und per buttondruck die
funktion gezeichnet bekommt.
nur weiß ich nicht wie ich mit einer aus dem textfeld ausgelesenen funktion in java rechnen kann und vor allem
ob das überhaupt geht.
hat jemand eine idee....

hier mal der quellcode so far.....

Code:
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import java.awt.Toolkit.*;

class MathFunktion extends JFrame implements ActionListener {
	
	//Der ganze Stuff für das Windows-Fenster,
	//habe GridBagConstraints zum anordnen benutzt und nen ActionListener
	//implementiert
	
	Panel[] p = new Panel[2];
	JLabel funktion = new JLabel("Funktion: ");
	JTextField funk = new JTextField(100);
	JButton zeichnen = new JButton("Zeichnen");
	JLabel af = new JLabel();
	
	public MathFunktion() {
        super("Mathematische Funktionen");
        setSize(800, 800);
        GridBagLayout Gridbag = new GridBagLayout();
    	GridBagConstraints Constraints = new GridBagConstraints();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p = new JPanel();
        p.setLayout(Gridbag);
		
		//Hier werden die Constraints definiert
		//Zeichenfläche
    	Constraints.fill = GridBagConstraints.BOTH;
    	Constraints.anchor = GridBagConstraints.WEST;
    	ConstraintsErstellen(Constraints, 0, 0, 3, 1, 100, 85);
		Darstellung dar = new Darstellung();
    	Gridbag.setConstraints(dar, Constraints);
    	p.add(dar);
    	
    	//Platzhalter
    	Constraints.fill = GridBagConstraints.BOTH;
    	Constraints.anchor = GridBagConstraints.CENTER;
    	ConstraintsErstellen(Constraints, 0, 1, 3, 1, 100, 0);
   	 	Gridbag.setConstraints(af, Constraints);
  	  	p.add(af);
    	
		//Label (Funktion)
    	Constraints.fill = GridBagConstraints.BOTH;
    	Constraints.anchor = GridBagConstraints.CENTER;
    	ConstraintsErstellen(Constraints, 0, 2, 1, 1, 10, 10);
   	 	Gridbag.setConstraints(funktion, Constraints);
  	  	p.add(funktion);
    
    	//Textfeld
    	Constraints.fill = GridBagConstraints.BOTH;
    	Constraints.anchor = GridBagConstraints.NORTH;
    	ConstraintsErstellen(Constraints, 1, 2, 1, 1, 80, 0);
    	Gridbag.setConstraints(funk, Constraints);
    	p.add(funk);
    	
    	//Button Zeichnen
    	Constraints.fill = GridBagConstraints.BOTH;
    	Constraints.anchor = GridBagConstraints.NORTH;
    	ConstraintsErstellen(Constraints, 2, 2, 1, 1, 10, 0);
    	zeichnen.addActionListener(this);
    	Gridbag.setConstraints(zeichnen, Constraints);
    	p.add(zeichnen);
        
        add(p);
        setVisible(true);
}
	//Hilfsklasse für die Constraints
	public void ConstraintsErstellen(GridBagConstraints gbc, int gx, 
		int gy, int gw, int gh, int wx, int wy) {
  			gbc.gridx = gx;
  			gbc.gridy = gy;
  			gbc.gridwidth = gw;
  			gbc.gridheight = gh;
  			gbc.weightx = wx;
  			gbc.weighty = wy;
  	}
	
	//Main
	public static void main (String args[]) {
		MathFunktion math = new MathFunktion();
	}
		
	//Die ActionPerformed Methode für den Zeichnen Button
	public void actionPerformed(ActionEvent evt) {
    	Object source = evt.getSource();
   
    	if (source == zeichnen) {
    		//Hier soll er nun die Zeichenkette auslesen und sie in die
    		//Darstellungsklasse übergeben
    
    		repaint();
    	}
	}
}


class Darstellung extends JPanel {
	public int y;
	float y1;
	
	//Methode um die Funktion zu zeichnen		
   	 public void paintComponent(Graphics comp) {
  	    Graphics2D comp2D = (Graphics2D)comp;
    	comp2D.setColor(Color.gray);
       	setSize(800, 600);
        Rectangle2D.Float background = new Rectangle2D.Float(
            0F, 0F, (float)getSize().width, (float)getSize().height);
        comp2D.fill(background);
        
        comp2D.setColor(Color.black);
      	
      	//X-und Y-Achse
		comp2D.drawLine(400,0,400,600);
		comp2D.drawLine(0,300,800,300);
		
	   	//Farbe für die Funktion
	   	comp2D.setColor(Color.blue);
	   
	   
	   
	   
	   
	   
	   	//BLOCK DER BIS ZUM X-WERT NULL ZEICHNET-------------------------------------------
	    int [] pArray1 = new int[4];
	   	boolean erster1 = true;
	   
		for (int x=0; x>= -400; x--) {
		int y;
		float y1;
		
		//HIER MUSS DIE FUNKTION EINGETRAGEN WERDEN----
		
		y1  = x*x;						//Da steht bis jetzt halt eine feste Funktion
		
		//---------------------------------------------
		
			y = (int) y1;
			if (erster1 == true) {
			pArray1[0] =x;
			pArray1[1] =y;
			comp2D.drawLine(pArray1[0]+400, -(pArray1[1])+300, pArray1[0]+400, -(pArray1[1])+300);
			erster1 = false;
			}
			else
		
			pArray1[2] =x;
			pArray1[3] =y;
	   		comp2D.drawLine(pArray1[0]+400, -(pArray1[1])+300, pArray1[2]+400, -(pArray1[3])+300);
	    
	  	    pArray1[0] = pArray1[2];
	  		pArray1[1] = pArray1[3];
	    }
	    //BLOCK DER BIS ZUM X-WERT NULL ZEICHNET-------------------------------------------
	   
	   
	   
	   
	   
	   
	   //BLOCK DER AB DEM X-WERT NULL ZEICHNET-------------------------------------------
	   int x1;
	   int [] pArray = new int[4];
	   boolean erster = true;
	   
		for (x1=0; x1<= 400; x1++) {
		
		
		//HIER MUSS DIE FUNKTION EINGETRAGEN WERDEN----
		
		y1  = x1*x1;								//Hier dasselbe wie beim vorherigen Block
		
		//---------------------------------------------
		
		y = (int) y1;
		if (erster == true) {
		pArray[0] =x1;
		pArray[1] =y;
		comp2D.drawLine(pArray[0]+400, -(pArray[1])+300, pArray[0]+400, -(pArray[1])+300);
		erster = false;
		}
		else
		
		pArray[2] =x1;
		pArray[3] =y;
	    comp2D.drawLine(pArray[0]+400, -(pArray[1])+300, pArray[2]+400, -(pArray[3])+300);
	    
	    pArray[0] = pArray[2];
	    pArray[1] = pArray[3];
	    }
	    //BLOCK DER AB DEM X-WERT NULL ZEICHNET-------------------------------------------

		}
}

das programm besteht aus zwei klassen.. die eine für die mainmethode, die gui und den action listener und
die andere die zeichnen soll.
bis jetzt sieht man eine direkt im source eingetippte funktion gezeichnet, und die gui mit buttons und textfeldern usw.

danke im vorraus
 

DTR

Bekanntes Mitglied
Hallo,

es geht auf jeden Fall, ist aber mit etwas Arbeit verbunden. Du solltest die Funktion einlesen und in ihre Bestandteile aufspliten. Am besten erstellst du dir dafür eine Operatorbaum. Um zu Zeichen Übergibst du dem Operatorbaum dann den X-Wert und er leifert dir den Y-Wert. DAmit solltest du dann Zeichnen können.

Gruß
DTR
 

DTR

Bekanntes Mitglied
Ein Operator baum ist so aufgebaut, das der Knoten einen Operator enthält und auf zwei Operanten verweißt.
Z.B. ergibt 2 + 5 einen Baum der art + zeigt auf 2 und 5
2 + 5 * 7 ergibt * zeigt auf 7 und auf + zeigt auf 2 und 5

Gruß
DTR
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Gleichung String Split Java Basics - Anfänger-Themen 6
S Eingabe in einer Gleichung. Java Basics - Anfänger-Themen 14
S Lineare Gleichung lösen Java Basics - Anfänger-Themen 1
C Gleichung mit Potenz mit einer Unbekannten lösen Java Basics - Anfänger-Themen 5
B lineare Gleichung programmieren Java Basics - Anfänger-Themen 2
R quadratische Gleichung Java Basics - Anfänger-Themen 23
M Quadratische Gleichung Java Basics - Anfänger-Themen 6
B Quadratische Gleichung mit JAVA lösen Java Basics - Anfänger-Themen 5
S Quadratische Gleichung Java Basics - Anfänger-Themen 5
H Gleichung parsen Java Basics - Anfänger-Themen 10
calzone Problem einer Gleichung mit Modulo Java Basics - Anfänger-Themen 5
V Quadratische Gleichung Java Basics - Anfänger-Themen 20
O Quadratische Gleichung Problem?! Java Basics - Anfänger-Themen 7
F Problem mit quadratischer Gleichung Java Basics - Anfänger-Themen 4
K Lösen einer Gleichung Java Basics - Anfänger-Themen 12
G Frage wegen Quadratische Gleichung Java Basics - Anfänger-Themen 9
G Zahlen aus Gleichung Java Basics - Anfänger-Themen 4
G quadratische Gleichung lösen Java Basics - Anfänger-Themen 2
I gleichung lösen Java Basics - Anfänger-Themen 4
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben