实现0~360度sin(x)曲线与cos(x)曲线图形的同时显示

实现0~360度sin(x)曲线与cos(x)曲线图形的同时显示

 c语言趣味编程百例精解中的习题,参考了该书中的头两个例子:假定图形的总宽度为62列,cos(x)曲线用"+"表示,sin(x)曲线用"*"表示。

 1 #include  < iostream >
 2 #include  < cmath >
 3 using   namespace  std;
 4
 5 int  main()
 6 {
 7    double y;
 8    int m, n, x, yy;
 9
10    for (yy = 0; yy <= 20; yy++)
11    {
12        y = yy * 0.1;
13        m = acos(1 - y)*10;    /**//* m:cos(x)曲线上y点对应的坐标列 */
14        n = asin(1 - y)*10/**//* n:sin(x)曲线上y点对应的坐标列 */
15
16        for (x = 0; x <= 31; x++/**//* 0~180度的图像显示 */
17        {
18            if (x == n && x == m)    /**//* 相交时打印'+' */
19            {
20                cout << "+";
21            }

22            else if (x == m || x == 62 - m)  /**//* 打印不相交时的cos(x)曲线图形 */
23            {
24                cout << "+";
25            }

26            else if (x == n || x == 31 - n ) /**//* 打印不相交时的sin(x)曲线图形 */
27            {
28                cout << "*";
29            }

30            else
31                cout << " ";                /**//* 其他情况打印空格 */
32        }

33        for (; x <= 62; x++/**//* 180~360度的图像显示 */
34        {
35            if (x == n && x == m)
36            {
37                cout << "+";
38            }

39            else if (x == m || x == 62 - m)
40            {
41                cout << "+";
42            }

43            else if (x == 31 - n || x == 62 + n)
44            {
45                cout << "*";
46            }

47            else
48                cout << " ";
49        }

50        cout << endl;
51    }

52}

你可能感兴趣的:(实现0~360度sin(x)曲线与cos(x)曲线图形的同时显示)