- //图像勉强可以看了。
- //没用到java的绘图,简单的描点打印
- public class Demo
- {
- public static void main(String[] args)
- {
- show();
- }
- public static void show()//打印 y = sin(x)
- {
- double y;//定义一个y值,与函数y值对应
- int i, j;//循环变量
- int x;//定义一个x值,与函数x值对应
- for( y = 1; y >= -1; y -= 0.1 )// y = sin(x); 已知y在[-1,1]
- {
- if( y >= 0 ) //y大于0
- {
- x = (int)(Math.asin(y)*10);//利用asin()方法,得出x,并乘以10( 便于绘图 ,如: sin(3.14) ≈ 0 )
-
- for( j = 1; j < x; j++ ) //当小于x的都打印空格
- System.out.print(" ");
- System.out.print("*"); //等于x的时候打印*
-
- for(; j < 31-x; j++) //最大x等于31(原因很简单,不解释),对称打印。以31为中轴
- System.out.print(" ");
- System.out.println("*");//对称的位置打印*
- }
- else //同理
- {
- x = (int)(-1*Math.asin(y)*10);
- for( i = 0; i < 32; i++ )
- System.out.print(" ");
- for( j = 1; j < x; j++ )
- System.out.print(" ");
- System.out.print("*");
- for( ; j < 31-x; j++ )
- System.out.print(" ");
- System.out.println("*");
- }
- }
- }
- }
复制代码 |