Hallo,
also ich programmiere meine Programme gerne der Reihe nach, auch mit Funktionen, usw...
Die meisten Programmiersprachen machen das auch mit.
Um so eine Reise durch die Mandelbrotmenge ins Internet zu stellen hätte ich gerne
JavaScript genommen. Das geht zwar, ist aber langsam und man sieht das Ergebnis
erst am Ende der Rechnung.
Dann habe ich mir dann das erstbeste einfache Applet kopiert (Das hat Kreise gezeichnet)
Es enthält nur :
init(){}
und
public void paint(Graphics g){}
Ich habe dann meinen ganzen Kram in paint hereingeknallt.
Paint startet automatisch (Warum eigentlich? Und woher bekommt es g) und zeichnet die Mandelbrot Menge.
Prima.
Jetzt kommt der zweite Schritt.
Mit paint2() markiere ich Ausschnitte aus dem Bild von paint().
paint2() steht auch in der gleichen Klasse.
paint2() rufe ich vom Mouselistener aus auf, aus der selben Klasse.
Da mir Graphics g dort fehlt hole ich mir g
mit g=super.getgraphics() , das hat mir netbeans vorgeschlagen auf meiner Suche nach so einer
Art globalen g und ich dachte super würde vielleicht was bringen. g=getgraphics() geht wahrscheinlich
auch.
Es geht auch, ich markiere dann mit paint2() Ausschnitte aus paint().
Wenn ich dann die neuen Koordinaten für den Ausschnitt habe rufe ich
paint(g) , auch vom mouselistener aus auf, wieder mit g=super.getgraphics() und anderen "globalen" Parametern/Variablen
aus meiner Klasse, um einen Ausschnitt aus der Menge zu zeichnen.
Das geht so halb. Mit Bedienungstricks, die ich zufällig gefunden habe kannn ich in die Menge eindringen, bis die
Rechengenauigkeit des Rechners versagt.
Aber ältere Rechtecke aus der Markierung mit paint2() tauchen immer wieder mal auf und es funktioniert nicht
Bedienungsfreundlich.
Drum weiß ich nicht was ich für gs ich da verwende.
Ich hätte gerne nach der Markierung ein völlig neues Graphics g (So wie beim Start des Applets)
Alle gs die ich vorher verwendet habe würde ich gerne löschen und paint2 mit einem g aufrufen,
das besser paßt auf das neue g mit dem paint vorher aufgerufen wurde.
Aber woher bekomme ich das g uns wie lösche ich alle anderen gs die da noch rumschwirren?
Danke für eine Hilfe, die mir die Javalogik wohl etwas näher bringt.
Thomas
also ich programmiere meine Programme gerne der Reihe nach, auch mit Funktionen, usw...
Die meisten Programmiersprachen machen das auch mit.
Um so eine Reise durch die Mandelbrotmenge ins Internet zu stellen hätte ich gerne
JavaScript genommen. Das geht zwar, ist aber langsam und man sieht das Ergebnis
erst am Ende der Rechnung.
Dann habe ich mir dann das erstbeste einfache Applet kopiert (Das hat Kreise gezeichnet)
Es enthält nur :
init(){}
und
public void paint(Graphics g){}
Ich habe dann meinen ganzen Kram in paint hereingeknallt.
Paint startet automatisch (Warum eigentlich? Und woher bekommt es g) und zeichnet die Mandelbrot Menge.
Prima.
Jetzt kommt der zweite Schritt.
Mit paint2() markiere ich Ausschnitte aus dem Bild von paint().
paint2() steht auch in der gleichen Klasse.
paint2() rufe ich vom Mouselistener aus auf, aus der selben Klasse.
Code:
public void mouseDragged(MouseEvent me)
{
g=super.getGraphics();
...
paint2(g);
}
mit g=super.getgraphics() , das hat mir netbeans vorgeschlagen auf meiner Suche nach so einer
Art globalen g und ich dachte super würde vielleicht was bringen. g=getgraphics() geht wahrscheinlich
auch.
Es geht auch, ich markiere dann mit paint2() Ausschnitte aus paint().
Wenn ich dann die neuen Koordinaten für den Ausschnitt habe rufe ich
paint(g) , auch vom mouselistener aus auf, wieder mit g=super.getgraphics() und anderen "globalen" Parametern/Variablen
aus meiner Klasse, um einen Ausschnitt aus der Menge zu zeichnen.
Das geht so halb. Mit Bedienungstricks, die ich zufällig gefunden habe kannn ich in die Menge eindringen, bis die
Rechengenauigkeit des Rechners versagt.
Aber ältere Rechtecke aus der Markierung mit paint2() tauchen immer wieder mal auf und es funktioniert nicht
Bedienungsfreundlich.
Drum weiß ich nicht was ich für gs ich da verwende.
Ich hätte gerne nach der Markierung ein völlig neues Graphics g (So wie beim Start des Applets)
Alle gs die ich vorher verwendet habe würde ich gerne löschen und paint2 mit einem g aufrufen,
das besser paßt auf das neue g mit dem paint vorher aufgerufen wurde.
Aber woher bekomme ich das g uns wie lösche ich alle anderen gs die da noch rumschwirren?
Danke für eine Hilfe, die mir die Javalogik wohl etwas näher bringt.
Thomas