AlSvartr
2005-01-21, 11:17:24
Hallo zusammen ;)
Ich hatte mal wieder zuviel Zeit und habe ein total unsinniges Tool gebastelt, naemlich nen Konsolenbasierten Funktionsplotter. Das dumme an dem Ding ist, ich muss ihn, um damit rumspielen zu koennen (fuer mehr ist er ja eigentlich wirklich nicht geeignet :P), immer wieder neu compilen, da ich vermutlich weder in der Lage bin noch genug Zeit dazu habe, einen Funktionsparser zu schreiben. Hat irgendwer eine Ahnung, ob es so 'nen Parser in Java schon irgendwo (kostenlos) gibt? Wenn ich mich selbst dransetze, bin ich vermutlich in 10 Jahren noch nicht fertig... ;)
Source folgt:
// Tatsaechlich dargestellter Bereich auf X: maxx*xfak
// Tatsaechlich dargestellter Bereich auf Y: maxy*yfak
public class fConsole {
public static void main(String[] args) {
int maxx=50; // koordinaten von -maxx bis +maxx (Eingeschraenkt durch fak)
int maxy=10; // koordinaten von -maxy bis +maxy (Eingeschraenkt durch fak)
double xfak=.1; // Schrittweite auf x
double yfak=1; // Schrittweite auf y
boolean[][] system=new boolean[maxx*2+1][maxy*2];
double x=-maxx;
double y=0;
while (x<=maxx) {
double cx=x*xfak;
y=(cx*cx)-5; // f(cx)
System.out.println("X: "+cx+"; Y: "+y);
y=y/yfak;
if (y<maxy && y>=-maxy)
system[(int)x+maxx][(int)y+maxy]=true;
x++;
}
int xpos=0;
int ypos=(maxy*2)-1;
while (ypos>=0) {
while (xpos<=maxx*2) {
if (system[xpos][ypos]==true)
System.out.print("O");
else
if (xpos==maxx || ypos==maxy) {
if (xpos==maxx && ypos==maxy)
System.out.print("+");
else
if (xpos==maxx)
System.out.print("|");
else
System.out.print("-");
}
else
System.out.print(" ");
xpos++;
}
System.out.println();
xpos=0;
ypos--;
}
}
}
Ich hatte mal wieder zuviel Zeit und habe ein total unsinniges Tool gebastelt, naemlich nen Konsolenbasierten Funktionsplotter. Das dumme an dem Ding ist, ich muss ihn, um damit rumspielen zu koennen (fuer mehr ist er ja eigentlich wirklich nicht geeignet :P), immer wieder neu compilen, da ich vermutlich weder in der Lage bin noch genug Zeit dazu habe, einen Funktionsparser zu schreiben. Hat irgendwer eine Ahnung, ob es so 'nen Parser in Java schon irgendwo (kostenlos) gibt? Wenn ich mich selbst dransetze, bin ich vermutlich in 10 Jahren noch nicht fertig... ;)
Source folgt:
// Tatsaechlich dargestellter Bereich auf X: maxx*xfak
// Tatsaechlich dargestellter Bereich auf Y: maxy*yfak
public class fConsole {
public static void main(String[] args) {
int maxx=50; // koordinaten von -maxx bis +maxx (Eingeschraenkt durch fak)
int maxy=10; // koordinaten von -maxy bis +maxy (Eingeschraenkt durch fak)
double xfak=.1; // Schrittweite auf x
double yfak=1; // Schrittweite auf y
boolean[][] system=new boolean[maxx*2+1][maxy*2];
double x=-maxx;
double y=0;
while (x<=maxx) {
double cx=x*xfak;
y=(cx*cx)-5; // f(cx)
System.out.println("X: "+cx+"; Y: "+y);
y=y/yfak;
if (y<maxy && y>=-maxy)
system[(int)x+maxx][(int)y+maxy]=true;
x++;
}
int xpos=0;
int ypos=(maxy*2)-1;
while (ypos>=0) {
while (xpos<=maxx*2) {
if (system[xpos][ypos]==true)
System.out.print("O");
else
if (xpos==maxx || ypos==maxy) {
if (xpos==maxx && ypos==maxy)
System.out.print("+");
else
if (xpos==maxx)
System.out.print("|");
else
System.out.print("-");
}
else
System.out.print(" ");
xpos++;
}
System.out.println();
xpos=0;
ypos--;
}
}
}