Fractal erstellen

Diskutiere Fractal erstellen im Java Basics - Anfänger-Themen Bereich.
P

paul9

Hallo :)
Ich durchschaue es leider noch nicht so ganz, wie ich ein "Sierpiński arrowhead curve" erstellen kann. Die Methode zur Visualisierung habe ich bereits, es geht NUR darum, die Recursion zu implementieren.
Das gesuchte Fractal hat diese Rec.vorschrift:

T -> X (Anfang)
X -> LYRXRYL
Y -> RXLYLXR

Wobei eben X und Y bis zur Rekursionstiefe durch die Rec.vorschrift ersetzt werden (ist die gewünschte Tiefe erreicht, werden X und Y durch Leere ersetzt.
Java:
public class Arrowhead {
    /**
     * generates the n-th Arrowhead code sequence
     * @param n the dimension of the Arrowhead code
     * @return the n-th Arrowhead code sequence
     */
    public String getSequence(int n) {
        
        return X(0, n);
    }

    private String X(int iterations, int n) {
        
        if(n == iterations) {
            return " ";
        }
        return "L"+Y(iterations,n)+"R"+X(iterations,n)+"R"+Y(iterations,n)+"L";
        
        
    }

    private String Y(int iterations, int n) {
        
        if(n == iterations) {
            return " ";
        }
        return "R"+X(iterations,n)+"L"+Y(iterations,n)+"L"+X(iterations,n)+"R";
        
    }
}
Das wäre meine Idee..

Jetzt will ich, dass sich die Methode so gegenseitig aufrufen, dass einen aus den Symbolen R und L bestehenden String erzeugt wird, der als Instruktionskette für das Zeichnen des Fractals dient. Wenn n = iteration, so soll ein leerer String zurück gegeben werden. Wie gesagt: Die Visualisierung wird an anderer Stelle gemacht.

LG!
 
Zuletzt bearbeitet:
mihe7

mihe7

Du musst in den Aufrufen von X und Y die Iterationen hochzählen, sonst ändert sich der Parameter iterations nie und Du landest in einer Endlosrekursion.
 
P

paul9

Du musst in den Aufrufen von X und Y die Iterationen hochzählen, sonst ändert sich der Parameter iterations nie und Du landest in einer Endlosrekursion.
Ahh ja sowas hab ich mir schon gedacht... meinst du so?
Java:
    public String getSequence(int n) {
        
        return X(0, n);
    }

    private String X(int iterations, int n) {
        
        if(n == iterations) {
            return " ";
        }
        iterations++;
        return "L"+Y(iterations,n)+"R"+X(iterations,n)+"R"+Y(iterations,n)+"L";

        
    }

    private String Y(int iterations, int n) {
        
        if(n == iterations) {
            return " ";
        }
        iterations++;
        return "R"+X(iterations,n)+"L"+Y(iterations,n)+"L"+X(iterations,n)+"R";   
    }
 
P

paul9

Ahh ja sowas hab ich mir schon gedacht... meinst du so?
Java:
    public String getSequence(int n) {
       
        return X(0, n);
    }

    private String X(int iterations, int n) {
       
        if(n == iterations) {
            return " ";
        }
        iterations++;
        return "L"+Y(iterations,n)+"R"+X(iterations,n)+"R"+Y(iterations,n)+"L";

       
    }

    private String Y(int iterations, int n) {
       
        if(n == iterations) {
            return " ";
        }
        iterations++;
        return "R"+X(iterations,n)+"L"+Y(iterations,n)+"L"+X(iterations,n)+"R";  
    }
Ohhh ja ich habs! Mein Fehler lag daran, dass ich anstatt ein leeren String "" einen LEERzeichen-String " " zurückgegeben hab.. woow
 
Thema: 

Fractal erstellen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben