2016-03-21 18 views
0

Merhaba, javada putpixel yöntemini kullanarak bir daire çizmek için bir kod yazdım. Bu kod için bir döngü tasarlamaya çalıştım ama başarılı olmadım.Döngü Algoritması tasarımı

rad yarıçapı ve x, yi,
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); 

y çevreler için merkez noktasıdır: Bu orijinal kodudur. lütfen

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

kimse bana yardımcı olabilir: bunu bu şekilde

enter image description here

için kodumu yazmıştı şekildir ve bu ı vardı döngü ile kod başlar kodudur .

+0

Bu fırfırlı iç çamaşırları nasıl tasarlıyorlar? xD –

cevap

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

Bu yaklaşım, yaklaşımınızın neden üstün olduğunu açıkladıysanız ve soruda açıklanan sorunu giderirse daha iyi olur. Sadece kod soruları teknik olarak iyidir, ancak tamamen açıklanmış bir cevapla aynı kalite seviyesine sahip değildir. –