Subhi
Subhi

Reputation: 322

Loop Algorithm design

Hi i written a code to draw a circles using putpixel method in java. i tried to design a loop for this code but i didn't success. This is the original code:

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);

Where rad stands for radius and x,y is the center point for circles. this is the shape that i had written my code for it

enter image description here

and this is the code that i had start to code it with loop:

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);

If anyone can help me please.

Upvotes: 0

Views: 104

Answers (1)

Pooya
Pooya

Reputation: 6136

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);
}

Upvotes: 1

Related Questions