5
即時通訊相當新的Java和我正在學習遞歸我發現了一些很酷的東西這樣的鏈接,實現遞歸,以做一個波斯地毯。我想實現這個代碼轉換成Java波斯地毯遞歸
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();
}
我用我的窗口,一個JFrame和繪製一個JPanel但代碼是從Java真的不一樣,有人可以給我從哪裏開始的建議嗎?我知道代碼使用的顏色,但我想要做的只是在黑色的地毯,所以後來我可以實現一些顏色。
感謝您的提示。
如果你有任何代碼可以包含,請明確地寫在你的文章中,而不是使用外部鏈接(這可能有一個鏈接問題) – 2014-10-06 23:52:25
代碼是後,感謝por指出。 – Pcirekt 2014-10-07 00:05:20
快速提示:織布員使用的實際算法可能是迭代的,而不是遞歸的......人類不能很好地管理深度堆棧。 – keshlam 2014-10-07 01:57:09