Huhu,
sorry dass meine Antwort etwas auf sich hat warten lassen... Stecke hier ziemlich im Umzugsstress.. Jetzt aber zu Java
. Klar, ich hänge euch mal die Beiden Methoden an, die eine besonders lange Verzögerung gegenüber Windows haben. Wie gesagt, der identische Quellcode läuft mit dergleichen IDE auf Windows super schnell, auf dem Mac rechnet er sich echt seine guten 4 Minuten zusammen... Vielleicht habt ihr eine Idee, würde mir total helfen, ich weiß echt nicht woran es liegen könnte...
Methode 1):
public void poly()
{ int x;
double upper, lower, y, werte[][], ratioy, intervall;
werte = new double[WIDTH][2];
upper = Double.MIN_VALUE;
lower = Double.MAX_VALUE;
x=0;
intervall = 2.0/WIDTH;
//System.out.println("Intervall: "+intervall);
for (y=-1; y<(1-intervall); y=y+intervall) {
werte[x][0] = x;
werte[x][1] = 1+y+Math.pow(y, 2)+Math.pow(y, 3);
//System.out.println("werte[x][1]: "+werte[x][1]);
upper = Math.max(upper, werte[x][1]);
lower = Math.min(lower, werte[x][1]);
x++;
}//end for
ratioy = (upper - lower) / (double)(HEIGHT-1);
for (x = 0; x < WIDTH-2; x++) {
graphics.drawLine((int)(werte[x][0]), HEIGHT-(int)(werte[x][1]/ratioy),
(int)(werte[x+1][0]), HEIGHT-(int)(werte[x+1][1]/ratioy));
}//end for
meth=8;
g = new showGraphics(0,0,0,0,0,0,meth);
}
/*Schreiben der Grafik in eine TIFF-Datei*/
public void writeTIFF()
{
System.out.println("Gezeichnetes Objekt in TIFF - Datei speichern...");
// Bild in TIFF-File schreiben
JAI.create("filestore",image,"D:/Eclipse/Geom.tif","TIFF");
System.out.println("Datei abgelegt in D:/Eclipse/Geom.tif");
}
Methode 2):
public void resmeas() {
int i, intervall, punkt=12, feld=0, space=0, dist=0, move, column, change, height, correct1, correct2;
double frequD=3.094;
Color col;
col = new Color(0,0,0);
Font font;
column = WIDTH/12;
//Darstellen der Grenzbalken
graphics = drawColor(graphics, Color.gray);
graphics.setColor(Color.white);
graphics.fillRect(WIDTH/8,HEIGHT/8,WIDTH-WIDTH/4,HEIGHT/16);
graphics.setColor(Color.black);
graphics.fillRect(WIDTH/8,7*HEIGHT/8-HEIGHT/16,WIDTH-WIDTH/4,HEIGHT/16);
if(HEIGHT>1000) {
move=120;
change=105;
height = 44;
correct1 =12;
correct2=5;
font = new Font("Arial",1,22);
}
else{
move=90;
change=70;
height = 34;
correct1=8;
correct2=0;
font = new Font("Arial",1,14);
}
graphics.setFont(font);
//Erstellung des Schwarz-Wei? Musters
//F¸llfl‰che bestimmen
intervall = 3*WIDTH/4;
//Faktor 12, da 12 verschiedene Frequenzabstufungen
intervall = intervall/12;
do{
feld = intervall/punkt;
//Schleife zum Auff¸llen der einzelnen Frequenzmessbereiche
for(i=0;i<feld*punkt;i=i+punkt){
col = graphics.getColor();
if(col==Color.white) graphics.setColor(Color.black);
if(col==Color.black) graphics.setColor(Color.white);
graphics.fillRect(WIDTH/8+i+space,HEIGHT/8+HEIGHT/16,punkt,3*HEIGHT/4-HEIGHT/8+1);
}
space = space + feld*punkt;
dist = WIDTH/8+space;
punkt--;
//Trennstriche einzeichnen
col = graphics.getColor();
graphics.setColor(Color.black);
if(punkt>0) {
graphics.drawLine(dist, HEIGHT/16, dist, HEIGHT/8-1);
graphics.drawLine(dist, 7*HEIGHT/8, dist, 7*HEIGHT/8+HEIGHT/16);
}
//Frequenzbeschriftungen einf¸gen
//graphics.drawString(String.valueOf(frequD)+" MHz", dist-change, HEIGHT/8-14);
graphics.drawString(String.valueOf(column)+" Spalt.", dist-change, HEIGHT/8-move/4);
if((frequD<10.)){
graphics.drawString(String.valueOf(frequD)+" MHz", dist-change-correct2, 7*HEIGHT/8+height);
//graphics.drawString(String.valueOf(column)+" Spalt.", dist-change, 7*HEIGHT/8+move/3+7);
}
else{
graphics.drawString(String.valueOf(frequD)+" MHz", dist-change-correct1, 7*HEIGHT/8+height);
}
if(punkt>0) {
frequD = 37.125/punkt;
frequD = frequD*1000;
frequD = Math.round(frequD);
frequD = frequD/1000;
column = WIDTH/punkt; }
graphics.setColor(col);
}while(punkt>0);
//Abfrage, ob komplette Fl‰che gef¸llt wurde, ansonsten auff¸llen
if(dist<3*WIDTH/4+WIDTH/8){
for(i=dist;i<3*WIDTH/4+WIDTH/8;i++) {
col = graphics.getColor();
if(col==Color.white) graphics.setColor(Color.black);
if(col==Color.black) graphics.setColor(Color.white);
graphics.fillRect(i,HEIGHT/8+HEIGHT/16,1,3*HEIGHT/4-HEIGHT/8+1);
}
}
//Daten in Datei speichern
JAI.create("filestore",image,"D:/Eclipse/Testpictures/ResMeas.tif","TIFF");
}
Den Pfad für das Abspeichern der Datei ändere ich natürlich, je nach BS. Ich habe ein Main Programm, aus dem mittels Switch- Case verschiedene Grafikroutinen ausgewählt werden können. Vor Aufruf der Methoden wird ein Graphics2D Objekt angelegt mit allen nötigen Vorgaben...
Ich bin mir mittlerweile fast sicher, dass es in irgendeiner Form an der langsamen Umsetzung des Proggs liegt. Also mit anderen Worten, enn ich das Prog Compiliere und Starte, ist es sofort da und fragt nach der gewünschten Grafikberechnung... Dann wähle ich was aus und dann scheint er die vielen Rechenschritte nicht wirklich schnell zu packen.. Aber ihr seid da wohl fitter als ich und sehr vielleicht eher woran es liegen könnte..
)).
*Greez und Thx!
Jodie