趣味C语言——绘制余弦曲线
趣味C语言——绘制余弦曲线
前言:一起来感受编程之美吧!
🐼本篇内容简介:一、概念说明-->二、问题呈现-->三、源码实现(+注释)-->四、输出结果展示-->五、简要解释
一、概念说明
1.1余弦曲线的定义
余弦曲线一般指余弦波。 余弦曲线或余弦波(cosinwave)是一种来自数学三角函数中的正弦比例的曲线。也是模拟信号的代表,与代表数字信号的方波相对。
1.2简单补充说明
余弦曲线的形状就像完美的海上波浪般,以三角函数余弦比例改变而形成。
标准的纯余弦函数公式为:
1.3余弦曲线图样
在线绘制了一个图,仅供参考理解:
二、问题呈现
Problem Description:
在屏幕上用字符“*”显示0°~360°的余弦函数cos(x)曲线。
Input
无
Output
用字符“*”显示的0°~360°的余弦函数cos(x)曲线
Sample Input
无
Sample Output
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**
三、源码实现(+注释)
#include<stdio.h>
#include<math.h>
int main(){
double y;//y为列方向
int x,m;//定义两个整形变量 x为行(横)方向,m代表弧度
//y为列方向,值从1到-1,步长为0.1
for(y=1;y>=-1;y-=0.1)
{
//计算出y对应的弧度m,10为图形放大的倍数
m = acos(y)*10;
//控制打印左侧的*号
for(x=1;x<m;x++)
printf(" ");
printf("*");
//控制打印同一行中对称的右侧*号
for(;x<62-m;x++)
printf(" ");
printf("*\n");
}
return 0;
}
四、输出结果展示
4.1输出结果
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**
--------------------------------
Process exited after 0.2912 seconds with return value 0
请按任意键继续. . .
4.2输出结果(图示版)
五、简要解释
5.1解题关键
关键在于余弦曲线在==0°~360°的区间==内。
注释:在这区间内意味着什么呢?一行中要显示两个点,而对一般的显示器来说, 只能按行输出,即:输出第一行信息后,向下一行输出,不可再到上一行。因此为了满足本题要求的图形,就必须在一行中一次顺序输出两个字符“ * ”,这样才能在一行中显示两个点。
5.2细节理解
-
为了得到余弦函数cos(x)图形在一行上的两个点,同时要考虑利用cos(x)的左右对称性。将屏幕的行方向定义为 x、列方向定义为 y,则 0°~180°的图形与 180°~ 360°的图形是左右对称的。
-
定义图形的总宽度为62列,计算出x行0°~180°时y点的坐标m,那么在同一行与之对称的180°…360°的y点的坐标就应为62-m。程序中利用反余弦函数(arccos)acos计算坐标(x,y)的对应关系。
-
acos定义在math数学函数库(math.h)。
附: math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等。
5.3小提示
用这种方法编出的程序可能看起来比较精简,但是需要一定的技巧在里面。自然,方法不止这一种,也可以采用数组去实现,借助数组可能会更简单一些。
作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)
★喜欢的话,还请多多点赞与关注! 感谢支持!
- 点赞
- 收藏
- 关注作者
评论(0)