用于绘制圆圈的递归图形函数

时间:2018-01-17 16:02:06

标签: java recursion graphics

我想开始创建分形,我觉得这很有意思。 但是我无法使用以下代码。

void drawcircle(int x, int y, int radius) {
    g.drawOval(x,y, radius,radius);   //g is to call the graphic functions
    if(radius>2)
    {
       radius=radius/2;
       drawcircle(x, y, radius);
    }    
}

它应该给出同心圆,但是根本就没有输出。即使错误的输出也会起作用,因为它允许我修复它,但框架中没有任何东西出现。在输出窗口中,它显示了一大块红线,但我不明白错误是什么。有人能指出我的错误吗? 非常感谢。 编辑:代码使用如下。代码实际上并不适用于我的系统上的这些值,但它也不适用于任何其他值。

 int x=0; int y=0;
    drawcircle(x,y,256);

这是我得到的错误:

Error in the output window

编辑:感谢所有评论,我想出了代码的问题。正确的代码是

void conccircle(int x,int y, int radius,Graphics G) {
    G.drawOval(x-radius,y-radius,radius*2,radius*2);
    if(radius>=2)
    {
        radius=radius/2;
        conccircle(x,y,radius,G);
    }
}

1 个答案:

答案 0 :(得分:0)

我明白了,感谢所有评论的人!

void conccircle(int x,int y, int radius,Graphics G) {
G.drawOval(x-radius,y-radius,radius*2,radius*2);
if(radius>=2)
{
    radius=radius/2;
    conccircle(x,y,radius,G);
}}