Оптимизация вывода строк

Буквально за 10 минут написал простенькую программу, которая генерирует числами что-то "типо пилообразного сигнала, но изначально я синусоиду планировал нарисовать" (на него в итоге не очень похоже). Но, вывод чисел происходит не равномерно. Что можно сделать с этим кодом, чтобы все числа выводились плавно, без заеданий, пролагов и провисов?

import java.util.concurrent.TimeUnit;

public class Main {

    public static void main(String[] args) throws InterruptedException {
    int x = 1;
    int speed = 30;
    int frequency = 20;

    String amplitude = "1";
        StringBuffer sinusoid = new StringBuffer("1");
     while (x<=frequency) {
         System.out.println(sinusoid.toString());
         sinusoid.append(amplitude);
         x++;
         TimeUnit.MILLISECONDS.sleep(speed);

         if (x==frequency) {
             int y = frequency;
             while (y >= 1) {
                 System.out.println(sinusoid.toString());
                 sinusoid.setLength(y);
                 y--;
                 x--;
                 TimeUnit.MILLISECONDS.sleep(speed);
             }
         }
     }
    }
}

Ответы (0 шт):