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