package cglib;.net
public class jiekou {get
public static void drawLine(){
int usage = 700;
System.out.println("Test Begins...");
while(true){
long start = System.currentTimeMillis();
while(System.currentTimeMillis() - start < usage );
try{
Thread.sleep(1000-usage);
}catch(Exception e){
System.out.print(e);
}
}
}
public static void drawSin(){
double x = Math.PI / 2;
while(true){
//下面這一句+1是由於sinx可能爲負數,最大爲-1,加上1的話就保證爲正了
//*0.5是應爲加1以後,最大數可能達到2,爲了限制在1之內,因此*0.5
long usage = (long)((Math.sin(x)+1)*0.5*1000);
System.out.println(usage);
long start = System.currentTimeMillis();
while(System.currentTimeMillis() - start < usage);
try{
Thread.sleep(1000 - usage);
}catch(Exception e){
System.out.print(e);
}
x += 0.1;
}
}
public static void drawSinSpeedup(){
double x = Math.PI / 2;
//加入了刷新時間,能夠調控曲線彎曲程度
int flushtime = 5000;
while(true){
long usage = (long)((Math.sin(x)+1)*0.5*flushtime);
System.out.println(usage);
long start = System.currentTimeMillis();
while(System.currentTimeMillis() - start < usage);
try{
Thread.sleep(flushtime - usage);
}catch(Exception e){
System.out.print(e);
}
x += 0.1;
}
}
public static void main(String[] args) throws InterruptedException {
drawLine();
drawSin();
} io
}class