2016-11-13 3 views
0

Я пытаюсь рисовать концентрические круги, которые появляются по одному, от самого маленького до большого наружу. Я хочу дать иллюзию расширения круга, добавив дополнительный круг к внешней стороне существующего внешнего круга каждый раз, когда цикл выполняется. В настоящий момент все круги появляются одновременно, когда я запускаю свою программу. Пожалуйста, помогите, я понятия не имею, как это сделать. Заранее спасибо.Рисование Концентрических кругов, появляющихся по одному, Java

public static void drawCircles(Graphics g) { 
    int radius = 10; 
    int x = 0; 
    while(x <= 10) { 
     int z = radius/2; 
     g.drawOval(100 - z, 100 - z, radius, radius); 
      x++; 
      radius = radius + 10; 

    } 
} 

ответ

0

Чтобы приостановить программу между кругом черпает добавить вызов Thread.sleep (длинный Миллис), где Миллис является количеством миллисекунд, которые вы хотите сделать паузу.

public static void drawCircles(Graphics g) { 
    int radius = 10; 
    int x = 0; 
    while(x <= 10) { 
    int z = radius/2; 
    g.drawOval(100 - z, 100 - z, radius, radius);    
    try { 
     Thread.sleep(1000); 
    } catch (InterruptedException e) { 

    } 
    x++; 
    radius = radius + 10; 
    } 
} 
0

Чтобы создать иллюзию расширения круга. Ваш алгоритм должен удалить старый круг, вытерев холст or, например, снова нарисовав фон, чтобы, кажется, вы очистили старый круг, прежде чем рисовать новый.

Итак, скажите, был ли мой фон серой рамкой, я нарисую это, прежде чем нарисовать свой новый круг.

g.setColor(Color.GRAY); 
g.fillRect(0,0,BACKGROUND_SIDE_X, BACKGROUND_SIDE_Y); 
g.drawOval(100 - z, 100 - z, radius, radius);