Ich habe ein Problem mit meinem Programm welches einen vorher wählbaren Term in ein Koordinatensystem zeichnen soll.
Hier mal die zwei Funktionen aus dem Programm:
und...
...ich komm absolut nicht weiter.
Ich weiß nicht wie ich die Werte die in "public void f(double x)" berechnet werden in den Graphen einfügen kann.
Ich wäre sehr dankbar über eure Hilfe !!!
Hier mal die zwei Funktionen aus dem Programm:
Java:
public void f(double x)
{
double summe = 0.;
double term, abl1, abl2;
Zahlreset();
try
{
a = Integer.valueOf(tex1.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
b = Integer.valueOf(tex2.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
c = Integer.valueOf(tex3.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
d = Integer.valueOf(tex4.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
e = Integer.valueOf(tex5.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
f = Integer.valueOf(tex6.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
g = Integer.valueOf(tex7.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
try
{
h = Integer.valueOf(tex8.getText());
}
catch(NumberFormatException nfe)
{
System.out.println("fehler");
}
summe = a*Math.pow(x,(double)grad);
if (grad > 1)
{
summe = summe + b*Math.pow(x,(double)grad-1);
if (grad > 2)
{
summe = summe + c*Math.pow(x,(double)grad-2);
if (grad > 3)
{
summe = summe + d*Math.pow(x,(double)grad-3);
if (grad > 4)
{
summe = summe + e*Math.pow(x,(double)grad-4);
if (grad > 5)
{
summe = summe + f*Math.pow(x,(double)grad-5);
if (grad > 6)
{
summe = summe + g*Math.pow(x,(double)grad-6);
if (grad > 7)
{
summe = summe + h*Math.pow(x,(double)grad-7);
}
else
{
summe = summe + h;
}
}
else
{
summe = summe + g;
}
}
else
{
summe = summe + f;
}
}
else
{
summe = summe + e;
}
}
else
{
summe = summe + d;
}
}
else
{
summe = summe + c;
}
}
else
{
summe = summe + b;
}
}
Java:
public void paint(Graphics g)
{
xsa = 400;
xse = 700;
ysa = 150;
yse = 450;
xwa = -10;
xwe = 10;
ywa = 10;
ywe = -10;
// Zeichnen der Rahmens
g.setColor(Color.green);
g.drawRect(xsa-rand,ysa-rand,xse-xsa+2*rand,yse-ysa+2*rand);
// Konstruktion der x-Achse
g.setColor(Color.blue);
g.drawLine(transx(xwa),transy(0),transx(xwe),transy(0));
g.drawString("x",transx(xwe)+5,transy(0)+5);
// Pfeil an die x-Achse
g.drawLine(transx(xwe),transy(0),transx(xwe)-5,transy(0)-5);
g.drawLine(transx(xwe),transy(0),transx(xwe)-5,transy(0)+5);
// Skalierung der x-Achse
int ischritt = 1;
if (xwe-xwa > 20) ischritt = 5;
if (xwe-xwa > 100) ischritt = 10;
for (int i = (int)xwa; i < (int)xwe; i+=ischritt)
{
if (i != 0)
{
g.drawLine(transx(i),transy(0)-5,transx(i),transy(0)+5);
g.drawString(""+i,transx(i),transy(0)+15);
}
}
// Konstruktion der y-Achse
g.setColor(Color.red);
g.drawLine(transx(0),transy(ywa),transx(0),transy(ywe));
g.drawString("y",transy(ywe)+5,transx(0)+5);
// Pfeil an die y-Achse
g.drawLine(transx(0),transy(ywe),transx(0)-5,transy(ywe)+5);
g.drawLine(transx(0),transy(ywe),transx(0)+5,transy(ywe)+5);
// Skalierung y-Achse
int ischrit = 1;
if (ywe-ywa > 20) ischrit = 5;
if (ywe-ywa > 100) ischrit = 10;
for (int k = (int)ywa; k < (int)ywe; k+=ischrit)
{
if (k != 0)
{
g.drawLine(transx(0)-5,transy(k),transx(0)+5,transy(k));
g.drawString(""+k,transx(0)-15,transy(k));
}
}
double graphschrw = (xwe-xwa)/1000;
double x= 0;
int x1,x2,y1,y2;
for(x=xwa;x<xwe;x+=graphschrw)
{
x1=transx(x);
y1=transy(m*x+u);
x2=transx(x+graphschrw);
y2=transy(m*(x+graphschrw)*u);
if(y1>=ysa && y1<=yse && y2>=ysa && y2<=yse)
{
g.drawLine(x2,y2,x1,y1);
}
}
}
// Koordinatentransformation Welt- in Screenkoordinaten
int transx(double xw)
{
int xs = (int)((xse-xsa)/(xwe-xwa)*(xw-xwa)+xsa);
// Testprint
System.out.println("transx: xw = "+xw+"\t --> xs = "+xs);
return xs;
}
int transy(double yw)
{
int ys = (int)((ysa-yse)/(ywe-ywa)*(yw-ywa)+yse);
// Testprint
System.out.println("transy: yw = "+yw+"\t --> ys = "+ys);
return ys;
}
}
...ich komm absolut nicht weiter.
Ich weiß nicht wie ich die Werte die in "public void f(double x)" berechnet werden in den Graphen einfügen kann.
Ich wäre sehr dankbar über eure Hilfe !!!
Zuletzt bearbeitet: