package mathekurven; import java.awt.*; import java.awt.event.*; import java.applet.*; public class kurven extends Applet { boolean isStandalone = false; /**Parameterwert holen*/ public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } /**Das Applet konstruieren*/ public kurven() { } /**Das Applet initialisieren*/ public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Initialisierung der Komponenten*/ private void jbInit() throws Exception { this.setBackground(Color.white); } /**Applet-Information holen*/ public String getAppletInfo() { return "Applet-Information"; } /**Parameter-Infos holen*/ public String[][] getParameterInfo() { return null; } int Zeichenbreite,Zeichenhoehe; // Groesse des Zeichenbereichs int xrand = 30,yrand =30; // Rand zwischen Graph und Applet int xnull,ynull; // Nullpunkte des Graphen double defmin =-3.0, defmax= 3.0, defaufloesung=0.1; // x-Achse double wertmin =0.0, wertmax=0.0; // y-Achse int xlang,ylang; // Laengen der Achsen int abx, aby; // Abstaende void init_beschriftung(Graphics g){ // Initalisierung Beschriftung des Applets int s_start,s_lang; String s; // Variable fuer String Rectangle r = g.getClipBounds(); // Groesse des Zeichenbereichs Zeichenbreite=r.width; // Breite ermitteln Zeichenhoehe=r.height; // Hoehe ermitteln s = "Zeichengroesse: Breite= "+Integer.toString(r.width)+" Hoehe= "+Integer.toString(r.height); s_lang= g.getFontMetrics().stringWidth(s); // Breite des Stings ermitteln s_start = (Zeichenbreite-s_lang)/2; // Sting soll zentriert werden, den g.setColor(Color.black); g.drawString(s,s_start,20); // Ueberschrift ausgeben xlang= Zeichenbreite-2*xrand; // xlang aus Zeichenbreite ermitteln ylang= Zeichenhoehe-2*yrand; // ylang aus Zeichenbreite ermitteln abx = xlang/ (int) Math.round(defmax-defmin+2.0); // x-Abstand ausrechnen aby = ylang /(int) Math.round(wertmax-wertmin+2.0); // y-Abstand ausrechnen xnull= (int) Math.round((1.0-defmin)*abx)+xrand; // Nullpunkt fuer x setzen ynull= ylang+yrand - (int) Math.round((1.0-wertmin)*aby); // Nullpunkt fuer y automatisch setzen } double fun(double x){ // Hier ist die zu berechnende Funktion //return x*x/8.0-0.4*x; //x=x-3; //return (x*x/5.0)-3.0; return 0.1*(x*x*x);//-5*x; } void findeExtreme(){ double i,y; // Laufvariable for (i= defmin; i<= defmax; i=i+defaufloesung){ y=fun(i); if (y>wertmax) wertmax=y; if (y