2016-03-21 66 views
0

嗨,我写了一个代码,用java中的putpixel方法绘制圆圈。 我试图为此代码设计一个循环,但我没有成功。 这是原来的代码:循环算法设计

g2d=(Graphics2D) g; 
    int x=200, y=200,rad =120; 
    printcircle(x,y,rad,g); 
    printcircle(x+rad/2,y,rad/2,g); 
    printcircle(x-rad/2,y,rad/2,g); 
    printcircle(200-90,200,30,g); 
    printcircle(200+90,200,30,g); 
    printcircle(200-30,200,30,g); 
    printcircle(200+30,200,30,g); 
    printcircle(200+45,200,15,g); 
    printcircle(200-45,200,15,g); 
    printcircle(200+15,200,15,g); 
    printcircle(200-15,200,15,g); 
    printcircle(200-15,200,15,g); 
    printcircle(200-75,200,15,g); 
    printcircle(200+75,200,15,g); 
    printcircle(200+105,200,15,g); 
    printcircle(200-105,200,15,g); 

凡弧度表示的半径和X,Y是圆的中心点。 这是我写我的代码为它

enter image description here

形状,这是我不得不开始将它与循环代码代码:

g2d=(Graphics2D) g; 
    int x=200, y=200,rad =120; 
    printcircle(x,y,rad,g); 
    for(int i=0;i<2;i++) 
    { int t=rad/2; 
    printcircle(x+t,y,t,g); 
     printcircle(x-t,y,t,g); 
     } 
for(int i=0;i<3;i++) 
{ 
    int t=rad/4; 
    printcircle(200-90,200,30,g); 
     printcircle(200+90,200,30,g); 
     printcircle(200-30,200,30,g); 
     printcircle(200+30,200,30,g); 
} 
      printcircle(200+45,200,15,g); 
      printcircle(200-45,200,15,g); 
      printcircle(200+15,200,15,g); 
      printcircle(200-15,200,15,g); 
      printcircle(200-15,200,15,g); 
      printcircle(200-75,200,15,g); 
      printcircle(200+75,200,15,g); 
      printcircle(200+105,200,15,g); 
      printcircle(200-105,200,15,g); 

如果有人可以帮助我,请。

+0

这是他们如何设计那些褶边内衣吗? xD – 2016-03-21 17:20:51

回答

1
g2d=(Graphics2D) g; 
int x=200, y=200,rad =120; 
for(int i=0;i<8;i++) 
{ 
    int param; 
    if(i == 2 || i == 6) 
     param = 30; 
    else if(i == 4) 
     param = 60; 
    else if(i == 0) 
     param = 120; 
    else 
     param = 15; 
    printcircle(x+i*15,y,param,g); 
    if(i == 0) 
     continue; 
    printcircle(x-i*15,y,param,g); 
} 
+0

如果你解释了为什么你的方法更好,并解决了问题中描述的问题,这个答案会更好。仅提供代码的问题在技术上没问题,但与完全解释的答案没有相同的质量水平 –