我正在用Java编写一个递归方法,该方法本质上是创建一个圆树。它在顶部和中心绘制一个圆,然后再次调用该方法,并在y轴的下一层并在新圆的左侧和右侧的中途创建一个圆。我成功了,但只绘制了一定数量的对象This is what it looks like
public void test(Graphics g, int y, int num, double instance) {
if(num<50) {
int r = 20;
for(int i=1;i<=instance;i++) {
if(i%2==1) {
g.fillOval(getWidth() * i / num, y, r, r);
}
}
if(instance==1){
instance= 2* instance;
}
test(g, y + 20, num * 2, Math.pow(instance,2.0));
}
一切正常,直到我尝试将“ if(num <50)”中的数字增加到正好“ if(num <65)”。当我更改时,出现了JFrame,但现在它是空的,似乎程序已冻结。我想增加它,以便可以用圆圈树填充Jframe。为什么这样做呢?期待你的回复!谢谢!
我发现了问题。我不知道为什么我只用* 2并固定了整个程序时选择使用Math power。