代码如下:
/*
* 绘制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("*");
}
}
}
}