代碼如下:
/*
* 繪制0°到360°的正弦曲線
* 分兩種情形,y>0和y<=0進行繪制
* 每種情形中要考慮每行打印兩個"*"字符
* 并在打印第二個"*"字符后換行
*/
package hundred;
import java.lang.Math;
public class SinTest {
public static void main(String[] args){
//y為列方向,值從1到-1,步長為0.1
for (double y = 1;y>=-1;y-=0.1){
//計算出y對應的弧度,乘10為圖形放大倍數
int m = -(int)(Math.asin(y)*10);
if (y > 0){
for (int x = 1;x <1-m;x++){
System.out.print(" ");
}
System.out.print("*");
//31為10*π的整數部分,打印出來的曲線比較順眼
for (int x =1;x <31+2*m;x++){
System.out.print(" ");
}
System.out.println("*");
}
if (y <= 0){
for (int x = 1;x < 32+m;x++){
System.out.print(" ");
}
System.out.print("*");
//31為10*π的整數部分,打印出來的曲線比較順眼
for (int x = 1;x < 31-2*m;x++){
System.out.print(" ");
}
System.out.println("*");
}
}
}
}