兴海北路

---男儿仗剑自横行
<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

  • 随笔 - 85
  • 文章 - 0
  • 评论 - 17
  • 引用 - 0

常用链接

留言簿(6)

随笔分类

随笔档案

收藏夹

全是知识啊

搜索

  •  

最新评论

阅读排行榜

评论排行榜

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

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

 1#include <iostream>
 2#include <cmath>
 3using namespace std;
 4
 5int 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}

posted on 2010-05-26 13:55 随意门 阅读(1038) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理