import java.applet.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionAdapter; import javax.swing.JOptionPane; public class Funktionsplotter extends Applet implements MouseListener { int genauigkeit=10000; Color gFarbe=Color.blue; String farbe="blau"; double[][] funktionswerte = new double[2][genauigkeit]; int mausx; int mausy; double x1 = -5; double x2 = 5; double y1 = 5; double y2 = -5; String funktion="2.5x^2-3.7"; public void init() { this.addMouseListener(this); macheGraphen(funktion,"blau"); } public void paint(Graphics g) { try{ //Mauspunkt g.setColor(Color.magenta); double mausxn= (mausx/(400/(x2-x1))+x1); System.out.println(mausxn); double mausyn=funktionAnwenden(mausxn,funktion); g.fillOval(mausx,(int)(-(mausyn*400/(y1-y2))+400*(y1/(y1-y2))), 5, 5); g.drawString( (Math.round(mausxn*100.)/100.)+"/"+Math.round(mausyn*100.)/100., mausx, (int)(-(mausyn*400/(y1-y2))+400*(y1/(y1-y2)))); g.setColor(Color.black); //Koordinatenkreuzmalen g.drawLine(0,(int)(400*(y1/(y1-y2))),400,(int)(400*(y1/(y1-y2)))); g.drawLine((int)(400*(-x1/(x2-x1))), 0, (int)(400*(-x1/(x2-x1))), 400); //Bezeichnungen+"Strichchen" for(int i=1;i<=(int)(x2-x1);i++) { int xStelle=(int)x1+i; g.drawString(Integer.toString(xStelle),(int)((xStelle*400/(x2-x1))+400*(-x1/(x2-x1))-6),(int)(400*(y1/(y1-y2)))+15); g.drawLine((int)((xStelle*400/(x2-x1))+400*(-x1/(x2-x1))),(int)(400*(y1/(y1-y2)))+4,(int)((xStelle*400/(x2-x1))+400*(-x1/(x2-x1))),(int)(400*(y1/(y1-y2)))-4); } for(int i=1;i<=(int)(y1-y2);i++) { int yStelle=(int)y2+i; if(yStelle!=0) { g.drawString(Integer.toString(yStelle),(int)(400*(-x1/(x2-x1))+10),(int)((-yStelle*400/(y1-y2))+400*(y1/(y1-y2)))+5); g.drawLine((int)(400*(-x1/(x2-x1))-4),(int)((-yStelle*400/(y1-y2))+400*(y1/(y1-y2))),(int)(400*(-x1/(x2-x1))+4),(int)((-yStelle*400/(y1-y2))+400*(y1/(y1-y2)))); } } //Graphen malen g.setColor(gFarbe); for(int k=0;k