next up previous contents
Nächste Seite: Baumstrukturen darstellen Aufwärts: AWT / Swing Vorherige Seite: Rechtecke ``aufziehen''   Inhalt

Funktionsgraphen darstellen

In zahlreichen Anwendungen müssen Graphen mathematisch berechneter Funktionswerte dargestellt werden. Wir besprechen dies an Hand einer einfachen Funktion, der $\sin$ - Funktion.

import java.awt.Graphics;
import java.awt.Color;
import java.awt.event.*;

public class Funktion extends java.awt.Frame {
    Funktion () {
        super("Funktionsgraph ausgeben");
        setBackground(Color.white);
        setSize(300,300);
        setLocation(100,100);
        setVisible(true);
    }

    double f(double x) {
        return -(Math.sin(x/(this.getSize().width/(2*Math.PI))))*this.getSize().height/3 + this.getSize().height/2;
    }

    public void paint (Graphics bs) {
        bs.setColor(Color.red);
        bs.drawLine(0,this.getSize().height/2,this.getSize().width, this.getSize().height/2);
        bs.setColor(Color.blue);
        for (int x=0; x<this.getSize().width; x++) {
            bs.drawLine(x,(int)f(x), x+1, (int)f(x+1));
        }
    }

    public static void main (String [] args) {
        Funktion proggi = new Funktion();
        WindowListener wl = new WindowAdapter () {
                public void windowClosing(WindowEvent we) {
                    System.exit(0);
                }
            };
        proggi.addWindowListener(wl);

    }
}

Beachte, dass genau eine Periode der $\sin$ - Funktion dargestellt wird, auch wenn das Fenster vergrößert oder verkleinert wird!


\includegraphics[width=4.5cm]{ALFunktion.ps}


Weitere Aufgabenstellungen ergeben sich, indem entsprechende Eingabeobjekte (Auswahllisten, Schaltflächen, etc.) ermöglichen, andere Funktionsgraphen und Kombinationen davon darzustellen. Auf diese Weise könnte beispielsweise ein Applet erstellt werden, das verschiedene $\sin$ - und $\cos$ - Funktionen bei verschiedenen Amplituden, Frequenzen und Phasenverschiebungen darstellt!



Alfred Nussbaumer 2003-02-10