Vollständige Version anzeigen : [JAVA] Bild per Rekursion malen, leider falschrum


jojo2peter
25.10.2014, 17:15

Hallo RR,

folgendes soll programmiert werden (Übung für Rekursion):

;;1;xup~to/exec/ximg;php?fid=16125405


mein Code dafür sieht so(Pastebin (;pastebin~com/4bh2UPp1)) aus:
import javax;swing;JFrame;import java;awt;Graphics;
import javax;swing;JPanel;
import java;awt;Color;




public class fraktal extends JPanel{

public fraktal(){
super();
}


public boolean drawQuader(Graphics g, int x, int y, int width, int height, int n){

if ( n == 4){g;setColor(Color;RED);}
if ( n == 3){g;setColor(Color;BLUE);}
if ( n == 2){g;setColor(Color;CYAN);}
if ( n == 1){g;setColor(Color;ORANGE);}
if ( n == 0){g;setColor(Color;PINK);}

g;fillRect(x,y,width,height);

if (n == 0){
return true;
}
else {
drawQuader(g,x-width/4,y-height/4,width/2,height/2,n-1);
drawQuader(g,(x+width)-width/4,(y+height)-width/4,width/2,height/2,n-1);
drawQuader(g,(x+width)-width/4,y-width/4, width/2, height/2, n-1);
drawQuader(g,x-width/4,(y+width)-width/4, width/2, height/2, n-1);
return true;
}

}

public void paintComponent(Graphics g){
super;paintComponent(g);
drawQuader(g, 150, 150, 250, 250, 4);

}
public static void main(String[] args) {
fraktal panel = new fraktal();
JFrame application = new JFrame();


application;setDefaultCloseOperation(JFrame;EXIT_ON_CLOSE);
application;add(panel);
application;setSize(600, 600);
application;setVisible(true);
application;setTitle("Fraktal");


}
}


Der Fehler ist, dass zuerst das große Quadrat gezeichnet wird, dann darüberliegend die anderen.
Das war zu Beginn auch so beabsichtigt, da ich dachte es gäbe eine leichte Methode Ebenen zu erzeugen.
Gibt es nicht eine Möglichkeit, wie bei LayeredPane, einfach eine gemalte Ebene mit einer Zahl zu versehen (0) für Top?


Für die, die es nicht compilen wollen, so sieht es derzeit aus :S:
;;1;xup~to/exec/ximg;php?fid=21423054

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Murdoc
25.10.2014, 19:12

Du startest mit 4 (Rot), dann 3 (Blau), dann 2 (Cyan), dann 1 (Orange) und zuletzt 0 (Pink).
Doch du malst direkt anstatt zunächst per Rekursion die anderen Quadrate zu malen.

Ich denke du wolltest auf das hier hinaus:

public boolean drawQuader(Graphics g, int x, int y, int width, int height, int n) {
if (n > 0) {
drawQuader(g, x - width / 4, y - height / 4, width / 2, height / 2, n - 1);
drawQuader(g, (x + width) - width / 4, (y + height) - width / 4, width / 2, height / 2, n - 1);
drawQuader(g, (x + width) - width / 4, y - width / 4, width / 2, height / 2, n - 1);
drawQuader(g, x - width / 4, (y + width) - width / 4, width / 2, height / 2, n - 1);
}

if (n == 4) {
g;setColor(Color;RED);
}
if (n == 3) {
g;setColor(Color;BLUE);
}
if (n == 2) {
g;setColor(Color;CYAN);
}
if (n == 1) {
g;setColor(Color;ORANGE);
}
if (n == 0) {
g;setColor(Color;PINK);
}

g;fillRect(x, y, width, height);

return true;
}


(Formatierung stammt aus Eclipse)


jojo2peter
26.10.2014, 10:35

Cool, vielen Dank :)


Ähnliche Themen zu [JAVA] Bild per Rekursion malen, leider falschrum
  • Soll ein Bild malen das eine Freundschaft wiederspielt
    HI ich soll für ne Freundin ein Bild mahlen, welches unsere freundschaft wiederpsiegelt und ich hab mir so überlegt das ich das male wo ein Herr einer Dame einen Regenschirm gibt, weil es regnet oder so. Kennt jemand so ein Bild? mfg [...]

  • [Java] Rekursion von Fibonacci mit einem Buffer
    Hi ;all, Hab folgende Aufgabe: Die Rekursive Fibonacci Folge zu Optimieren (Aber nicht iterativ lösen!!) und zwar mit einem Buffer! Schreib euch schonmal meine Fibonacci Rekursion welche optimiert werden muss: public static int fibonacciFolge(int zahl1) else } Ich denke [...]

  • [Java] Rekursion eines Zeichenprogramms
    Also folgehndes Problem - ich soll mit dem Programm (Testklasse fehlt natürlich) folgendes machen - Die Methode zeicheQuadrat ist ein bsp für den einfachen weg - nun soll eine rekursive Methode erstellt werden, die also ein Gebilde mehrfach aneinander kettet, z;b. mit einem kreis einen 3-d tun [...]

  • [Java] Java Hamster - Rekursion und Pyramidenproblem
    Also ich habe folgende Aufgabe im JavaHamstermodell bekommen: Der Hamster steht vor einem regelmäßigen Berg unbekannter Höhe, der aus Körnern besteht. Er soll den Berg ”aushöhlen“, d;h. alle innen liegenden Körnerkacheln sollen leer gefressen werden. Sie dürfen bei dieser Aufgabe keine V [...]



raid-rush.ws | Imprint & Contact pr