Uploaded with ImageShack.us
Java:
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
public class Funktion extends Frame implements AdjustmentListener, ActionListener
{
Button btn = new Button("berechnen");
Scrollbar ksb = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb1 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb2 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb3 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb4 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb5 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Scrollbar ksb6 = new Scrollbar(Scrollbar.HORIZONTAL, 10,10,-100,110);
Label n1Label = new Label("Funktionsterm:");
Label n2Label = new Label("Definitionsbereich:");
Label n3Label = new Label("f(x)=");
Label n4Label = new Label("(");
Label n5Label = new Label("sin(");
Label n6Label = new Label("x)+");
Label n7Label = new Label("cos(");
Label n8Label = new Label("x))");
Label n9Label = new Label("D= [");
Label n10Label = new Label(":");
Label n11Label = new Label("]");
TextField tf1 = new TextField("1.0", 10);
TextField tf2 = new TextField("1.0", 10);
TextField tf3 = new TextField("1.0", 10);
TextField tf4 = new TextField("1.0", 10);
TextField tf5 = new TextField("1.0", 10);
TextField tf6 = new TextField("1.0", 10);
TextField tf7 = new TextField("1.0", 10);
double status,status1,status2,status3,status4,status5,status6,xw,xwa,xwe,yw,ywa,ywe;
int xs,xsa = 30,xse = 770,ys,ysa= 230,yse = 570;
public static void main (String args[])
{
Funktion Funktion = new Funktion();
Funktion.setResizable (false);
}
public Funktion()
{
super("Plot trigonometrischer Funktionen");
setSize(800,600);
setLayout(null);
setTitle("Plot trigonometrischer Funktionen");
tf1.setBounds(200,90,40,20);
tf2.setBounds(250,90,40,20);
tf3.setBounds(315,90,40,20);
tf4.setBounds(375,90,40,20);
tf5.setBounds(445,90,40,20);
tf6.setBounds(200,140,40,20);
tf7.setBounds(260,140,40,20);
n1Label.setBounds(30,85,120,30);
n2Label.setBounds(30,135,120,30);
n3Label.setBounds(165,90,30,20);
n4Label.setBounds(241,90,10,20);
n5Label.setBounds(290,90,25,20);
n6Label.setBounds(354,90,22,20);
n7Label.setBounds(415,90,30,20);
n8Label.setBounds(485,90,25,20);
n9Label.setBounds(165,140,30,20);
n10Label.setBounds(245,140,15,20);
n11Label.setBounds(300,140,15,20);
ksb.setBounds(200,115,40,15);
ksb1.setBounds(250,115,40,15);
ksb2.setBounds(315,115,40,15);
ksb3.setBounds(375,115,40,15);
ksb4.setBounds(445,115,40,15);
ksb5.setBounds(200,165,40,15);
ksb6.setBounds(260,165,40,15);
btn.setBounds(650,140,80,20);
add(n1Label);
add(n2Label);
add(n3Label);
add(n4Label);
add(n5Label);
add(n6Label);
add(n7Label);
add(n8Label);
add(n9Label);
add(n10Label);
add(n11Label);
add(tf1);
add(tf2);
add(tf3);
add(tf4);
add(tf5);
add(tf6);
add(tf7);
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf4.setEditable(false);
tf5.setEditable(false);
tf6.setEditable(false);
tf7.setEditable(false);
add(ksb);
add(ksb1);
add(ksb2);
add(ksb3);
add(ksb4);
add(ksb5);
add(ksb6);
add(btn);
Font Courier = new Font ("Times New Roman", Font.BOLD | Font.PLAIN, 12);
this.setFont (Courier);
ksb.addAdjustmentListener(this);
ksb1.addAdjustmentListener(this);
ksb2.addAdjustmentListener(this);
ksb3.addAdjustmentListener(this);
ksb4.addAdjustmentListener(this);
ksb5.addAdjustmentListener(this);
ksb6.addAdjustmentListener(this);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
});
}
public void adjustmentValueChanged(AdjustmentEvent event)
{
status = (double)(ksb.getValue())/10;
status1 = (double)(ksb1.getValue())/10;
status2 = (double)(ksb2.getValue())/10;
status3 = (double)(ksb3.getValue())/10;
status4 = (double)(ksb4.getValue())/10;
status5 = (int)(ksb5.getValue());
status6 = (int)(ksb6.getValue());
tf1.setText(""+status);
tf2.setText(""+status1);
tf3.setText(""+status2);
tf4.setText(""+status3);
tf5.setText(""+status4);
tf6.setText(""+status5);
tf7.setText(""+status6);
repaint();
}
public void actionPerformed(ActionEvent event)
{
}
public void paint(Graphics g)
{
g.drawRect(20,220,760,360);
double y,a,b,c,d,e;
a = Double.parseDouble(tf1.getText());
b = Double.parseDouble(tf2.getText());
c = Double.parseDouble(tf3.getText());
d = Double.parseDouble(tf4.getText());
e = Double.parseDouble(tf5.getText());
int i = 0;
double werte[] = new double[1000];
for(double x = ((double)(ksb5.getValue()));x <= ((double)(ksb6.getValue())); x+= 0.1)
{
y = a*(b*Math.sin(c*x)+d* Math.cos(e*x));
werte[i]=transy(y);
i++;
}
for(int ii=0; ii<900; ii++)
{
g.drawLine(((int)werte[ii]),((int)werte[ii+1]),((int)werte[ii+2]),((int)werte[ii+3]));
}
xwa = -1.;
xwe = 1.;
try
{
xwa = Double.parseDouble(tf6.getText());
xwe = Double.parseDouble(tf7.getText());
}
catch(Exception ae)
{
}
ywa = -2.;
ywe = 3.;
g.drawLine(transx(xwa),transy(0.),transx(xwe),transy(0.));
g.drawLine(transx(0.),transy(ywa),transx(0.),transy(ywe));
}
public int transx(double xw)
{
return (int)(((xse-xsa)/(xwe-xwa))*(xw-xwa)+xsa);
}
public int transy(double yw)
{
return (int)(((ysa-yse)/(ywe-ywa))*(yw - ywa)+yse);
}
}
Nun meine Problematik:
Mein Programm zeichnet mir nur Kreise die Aussehen wie Kornkreise.
Bei dem Fehler kann ich nur mutmaßen.
Ich denke das die (x,y)-Werte nicht passen aber ich komme nicht drauf woran es wirklich liegt.
Danke im vorraus.
Zuletzt bearbeitet: