绘制余弦曲线

要求:在屏幕上用“*”(星号)显示0°~360°的余弦函数cos(x)曲线。(不使用数组)

问题分析与算法设计

对一般的显示器来说,只能按行输出,即:输出第一行信息后,想能向下一行输出,不能再返回到上一行。为了获得一个周期(0°~360°)的余弦函数图形,j就必须在一行中一次输出两个“*”。

为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕行方向定义为x,列方向定义为y。若定义图形的总宽度为62行,计算出x行0°~180°时y点坐标m,那么在同一行与之对称的180°~360°的y点坐标就应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对用关系。

程序说明与注释

/****************绘制0~2PI区间内的余弦曲线****************/

/***********编者:董炳政******编写时间2018/07/20**********/

/*******************************************************/

#include

#include

int main()

{

double y; /*纵坐标y*/

int x,m; /*横坐标x*/

for(y = 1;y >= -1;y -= 0.1) /*纵轴y从1~-1,步长为0.1*/

{

m=acos(y)*10; /*利用math.h中的反余弦函数,求对应横坐标的值,此时m为int型变量*/

for(x = 1;x < m;x++) /*开始逐行打点*/

printf(" "); /*在曲线定点右侧,打印空格*/

printf("*"); /*第一个曲线定点打印“*”*/

for(;x < 62-m;x++) /*开始打印对称曲线定点,由于对称性x的终值为62-m*/

printf(" "); /*在两定点之间打印空格*/

printf("*\n"); /*第二个曲线定点打印“*”,并换行*/

}

return 0;

}

运行结果:

[root@localhost 1_drawingcos]# ./drawingcos

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

**

绘制正弦曲线

在已经会绘制余弦曲线的基础上,我们来进一步探索如何利用C语言绘制正弦函数。

问题分析:

很自然的,我们想到将acos(y)换成asin(y),不就可以把画余弦函数换成画正弦函数了吗。可是,事实并没有那么简单。首先,0°~360°的正弦函数并不是一个简单的左右对称的图形;其次,反三角函数x=asin(y)的值域为(-π/2,π/2),所以并不能通过简单的求反三角函数值计算出(π,2π)这一段图形的横坐标。

这里提供一种方法。我们可以通过计算asin(y)来得到(0,π/2)这一段图形的横坐标;利用(0,π/2)的图形和(π/2,π)关于x=π/2轴对称,来得到(π/2,π)这一段图形的横坐标;通过计算π+asin(-y)的值,来得到(π,2π)这一段图形的横坐标。

/****************绘制0~2PI区间内的弦曲线****************/

/***********编者:董炳政******编写时间2018/07/20**********/

/*******************************************************/

#include

#include

#define PI 3.14159

int main()

{

double y; /*纵坐标y*/

int x,m; /*横坐标x*/

for(y = 1;y >= 0;y -= 0.1) /*先求0~PI,纵轴y从1~0,步长为0.1*/

{

m=asin(y)*10; /*利用math.h中的反正弦函数,求对应横坐标的值,此时m为int型变量*/

for(x = 1;x < m;x++) /*开始逐行打点*/

printf(" "); /*在曲线定点右侧,打印空格*/

printf("*"); /*第一个曲线定点打印“*”*/

for(;x < 31-m;x++) /*开始打印对称曲线定点,由于0~PI的对称性x的终值为31-m*/

printf(" "); /*在两定点之间打印空格*/

printf("*\n"); /*第二个曲线定点打印“*”,并换行*/

}

for(y -= 0.1;y >= -1;y -= 0.1)

{

m=(PI+asin(-y))*10;

for(x=1;x

printf(" ");

printf("*\n");

for(;x

printf(" ");

printf("*\n");

}

return 0;

}

运行结果:

[root@localhost 1_drawingcos]# ./drawingsin

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

* *

**

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

坐标中c语言作正弦图,C语言绘制余弦、正弦曲线相关推荐

  1. c语言中栈区运用原理形象图,C语言实现使用动态数组来构造栈结构

    我在面前一篇博客<C语言实现使用静态数组来构造栈结构>中使用了静态数组来模拟栈的操作.静态数组的大小是在代码中写死的.是存储在用户栈上面的,使用起来不灵活.在这篇博客中我会使用动态数组来构 ...

  2. R语言acres92 region_R语言作Circos图之进阶篇:圈圈套圈圈的法门

    如果把一组数据表组成一个列表(list),panel.fun则迭代用于各个数据表.再随机生成一个list来观察它的结构: bedlist = list( bed01=generateRandomBed ...

  3. r语言remarkdown展示图_R语言中的十个小技巧

    一.switch函数 我喜欢swith().它基本上是根据另一个变量的值来选择其值的if语句的一个方便的缩写.我发现当我编写代码时,根据您先前的选择需要加载不同的数据集时,它特别有用.例如,如果您有一 ...

  4. c语言窗口贴图,c语言添加图片

    <c语言添加图片>由会员分享,可在线阅读,更多相关<c语言添加图片(10页珍藏版)>请在人人文库网上搜索. 1.3.1背景如何实现首先将制作好的背景图片("BackG ...

  5. r语言remarkdown展示图_R语言—自动报告Markdown笔记

    一句话介绍:Markdown是一种轻量级标记语言,内容是代码与文本的混合,类似HTML,但语法比HTML简单. &. 比如:如果你写: 4<5 ,Markdown将会把他转换为: 4&l ...

  6. MATLAB中,信号的频谱图该怎么绘制?横坐标如何标注出频率值?

    一.什么是频谱? 频谱的全称是频率谱密度.在对时域信号进行认识和研究的过程中非常不便,那我们该如何更直观地认识信号,更清楚地了解信号的特点呢? 利用傅里叶变换将时域信号变换到频域. 我们知道,在通信领 ...

  7. r语言 精美rda图_R语言动态图可视化:如何、创建具有精美动画的图

    原文链接:http://tecdat.cn/?p=8003​tecdat.cn 演示数据集library(gapminder) head(gapminder) ## # A tibble: 6 x 6 ...

  8. matlab中怎么画五维图,使用MatLab绘制散点图的方法

    使用MatLab绘制散点图的方法: 1.首先从给出的excel表格中采用数据筛选方法,将所有某类型地区的相关数据全部筛选 出来.例如第1类区域的数据如下: 4043 1895 14 1 9.17 24 ...

  9. r语言remarkdown展示图_R语言knitr之rmarkdown

    R语言knitr之rmarkdown 数据报告是作为数据分析师必不可少的工作之一,而目前大部分数据分析师所处环境可能是excel画图制表,然后制作成word或者email的方式.对于周期性的报告,每次 ...

  10. r语言remarkdown展示图_R语言学习笔记--R bookdown图表设置中英文双标题

    一. 测试文档,该文档修改自 bookdown 的官方中文模板. 该方案可以实现同时生成pdf和html两种格式的文件,pdf文件中实现双标题,html文件可正常生成单个标题. 二. 结合 CTEX ...

最新文章

  1. PLY库-实现最简单的sql语法的数据库
  2. IHelloWorldService
  3. 深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好?
  4. 将某个字段改为不重复(unique)
  5. java 创建以太坊代币_以太坊 (五)编写智能合约-建立简易加密代币
  6. codemirror java代码_codemirror使用(示例代码)
  7. Linux读写执行权限
  8. Android设计模式(十五)--备忘录模式
  9. Python多级菜单
  10. php判断汉字是否相等,JavaScript
  11. 华为认证hcia含金量_华为hcna认证含金量高吗 华为hcna认证用处大吗
  12. 通过蓝牙连接进行ActiveSync同步
  13. div中img居中显示
  14. 深度学习数据集—鞋子、凉鞋和靴子图片数据集介绍
  15. read/write 阻塞/非阻塞
  16. 导出单帧图片以及时间线介绍(PR)
  17. 使用python+selenium谷歌浏览器驱动查排名
  18. 第1131期AI100_机器学习日报(2017-10-23)
  19. CSS3 制作正方体
  20. 什么是强化学习呢,来涨波知识

热门文章

  1. Manjaro找不到默认键盘布局
  2. unity2d自动生成敌人_在Unity 2D中产生敌人
  3. Oracle数据库限制ip访问
  4. vue项目运行后自动打开浏览器
  5. ubuntu-20.04.3-详细安装教程(图文)附下载地址
  6. 如何下载邯郸市卫星地图高清版大图
  7. “撤县设市”の利与弊
  8. 分词算法--正向最大匹配和逆向最大匹配实现
  9. pandas学习笔记(一):数据读入读出基本操作
  10. 常见电脑故障之网络不通