2014-10-06 4 views
5

Ich bin ziemlich neu in Java und ich lerne Rekursion Ich fand einige coole Sachen wie dieser Link, der Rekursion implementiert, um einen persischen Teppich zu machen. Ich möchte diesen Code in Java für die ZeichnungPerser Teppich Rekursion

float a = 1.0; 
int left = 0; 
int right = 340; 
int top = 0; 
int bot = 340; 
int r,g,b; 
color firstColor; 
color backC; 

//color backC = color(35,95,28); 

void setup() 
{ 
    //size(700, 700); 
    size(341, 341); 
    r = floor(random(1,255)); 
    g = floor(random(1,255)); 
    b = floor(random(1,255)); 
    firstColor = color(g);  
    backC = color(r,g,b); 
    background(backC); 
    stroke(firstColor); 
    line(left,top,right,top); 
    line(left,bot,right,bot); 
    line(left,top,left,bot); 
    line(right,top,right,bot); 
    a = random(1,6); 
    chooseColor(left, right, top, bot, a); 
} 

void draw() 
{} 

void chooseColor(int left, int right, int top, int bot, float a) 
{ 
    int midcol, midrow; 
    color col; 

    if (left < (right-1)) 
    { 
     col = floor((get(left,top) + get(right,top) + get(left,bot) + get(right,bot))/a); 
     midcol = (left + right)/2; 
     midrow = (top + bot)/2; 
     stroke(col); 
     line(left+1, midrow, right-1, midrow); 
     line(midcol, top+1, midcol, bot-1); 
     chooseColor(left, midcol, top, midrow, a); 
     chooseColor(midcol, right, top, midrow, a); 
     chooseColor(left, midcol, midrow, bot, a); 
     chooseColor(midcol, right, midrow, bot, a); 
    } 
} 

void keyPressed() 
{ 
    setup(); 
} 

Ich bin mit einem JFrame für mein Fenster und eine JPanel implementieren, aber der Code ist wirklich anders aus Java, kann mir jemand einen Rat, wo anfangen? Ich weiß, dass der Code Farben verwendet, aber was ich versuche, ist, den Teppich nur in schwarzer Farbe zu machen, damit ich später etwas Farbe umsetzen kann.

Danke für die Tipps.

+4

Wenn Sie einen Code zum Einbinden haben, schreiben Sie ihn bitte explizit in Ihren Post, ohne einen externen Link zu verwenden (der möglicherweise ein fehlerhaftes Linkproblem hat) –

+0

Der Code ist Post, danke, dass Sie darauf hinweisen. – Pcirekt

+2

Kurzer Hinweis: Der von den Webern verwendete Algorithmus ist wahrscheinlich iterativ, nicht rekursiv ... Menschen können tiefe Stapel nicht gut verwalten. – keshlam

Antwort

0

Da Sie mit Swing arbeiten, sollten Sie Oracle2Adurchgehen, um zu lernen, wie man Linien zeichnet und Farben einfärbt.