A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© long 中级黑马   /  2013-5-15 13:51  /  1498 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 long 于 2013-5-18 14:29 编辑

请问如何用java编写一个输出正弦函数图形的小程序?(图形是一条用星号*排列而成的波浪形曲线,0至360度即可)

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

2 个回复

倒序浏览
  1. //图像勉强可以看了。
  2. //没用到java的绘图,简单的描点打印
  3. public class Demo
  4. {
  5.          public static void main(String[] args)
  6.      {
  7.                  show();
  8.      }
  9.          public static void show()//打印 y = sin(x)
  10.          {
  11.                  double y;//定义一个y值,与函数y值对应
  12.                  int i, j;//循环变量
  13.                  int x;//定义一个x值,与函数x值对应
  14.                  for( y = 1; y >= -1; y -= 0.1 )// y = sin(x); 已知y在[-1,1]
  15.                  {
  16.                         if( y >= 0 ) //y大于0
  17.                         {              
  18.                             x = (int)(Math.asin(y)*10);//利用asin()方法,得出x,并乘以10( 便于绘图 ,如:  sin(3.14) ≈ 0 )
  19.                            
  20.                             for( j = 1; j < x; j++ ) //当小于x的都打印空格
  21.                                 System.out.print(" ");
  22.                             System.out.print("*");  //等于x的时候打印*
  23.                            
  24.                             for(; j < 31-x; j++) //最大x等于31(原因很简单,不解释),对称打印。以31为中轴
  25.                                     System.out.print(" ");                       
  26.                             System.out.println("*");//对称的位置打印*
  27.                         }
  28.                         else //同理
  29.                         {
  30.                             x = (int)(-1*Math.asin(y)*10);
  31.                             for( i = 0; i < 32; i++ )
  32.                                     System.out.print(" ");
  33.                             for( j = 1; j < x; j++ )
  34.                                     System.out.print(" ");
  35.                             System.out.print("*");
  36.                             for( ; j < 31-x; j++ )
  37.                                     System.out.print(" ");
  38.                             System.out.println("*");
  39.                         }
  40.                  }
  41.          }
  42. }
复制代码
回复 使用道具 举报
神人啊!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马