# Mathematische Funktion grafisch in Java darstellen



## der_thor (7. Mai 2006)

Hallo ich soll ein Programm schreiben das folgende Aufgabenstellung beinhaltet

Programmiere eine Klasse mit einer Methode public boolean showFunction(Graphics g) zur Ausgabe der Funktion y = 1/2 * x * cos x im Intervall -2 pi ...+ 2 pi. Zeichne dabei entsprechend die Achsen des Koordinatensystems und beschrifte diese mit "x" bzw "y". Markiere und beschrifte die Werte 1, -1, und alle Vielfachen von pi/2 im dargestellten Intervall. Gib die Funktionsgleichung als Text an geeigneter Stelle aus.

So nun sitz ich da und habe keine Ahnung  Leider sind wir nur bis Ausnahmen gekommen in Java und auch als ich Nachgelesen habe zb in "Java ist auch eine Insel" bin ich nicht viel schlauer geworden.
Vielleicht kann mir ja jemand bei meinem Problem helfen


----------



## lin (7. Mai 2006)

Schreib dir ne eigene Komponente (die z.B. von JPanel erbt und von der du die paintComponent(Graphics g) Methode überschreibst)  für die Darstellung des Graphen. 

Im main registrierst du n WindowListener der dir mitteilt, wann der user das Fenster verschiebt/-kleinert/-grössert und dann plotest du entsprechend neu. 

Dann schreib in der plot-komponente ne Methode, die dir die Funktion in Punkte umrechnet auf dem entsprechenden Abschnitt. Kannst dann die Darstellung so machen, dass du ne gewisse Zahl Punkte berechnest und diese dann mit ner Linie verbindest...


----------



## der_thor (7. Mai 2006)

Ahso ok das klingt schon einleuchtender. nun hab ich immerhin schonmal das koordinatensystem und deren beschriftung und einteilung sowie die grenzen fertig gestellt und die funktion plottet er mir auch schon nur hab ich bis dato noch das problem das wenn ich das jpanel skaliere die funktion zwar entsprechend mitskaliert wird jedoch nicht mein koordinatensystem. die funktion habe ich in pixelkoordinaten umrechnen lassen. sollte ich das beim koordinatensystem also denke ich auch mal porbieren. auf die idee eine funktion in punkte umrechnen wär ich jetzt nicht gekommen dachte ich hätte es mit Math.cos in irgendeinem zusammenhang bringen können. aber jedenfalls bin ich dem ziel schon weiter als noch vor ein paar stunden  danke für den tipp!


----------

