中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言繪制余弦、正弦曲線

發布時間:2020-09-11 10:37:43 來源:腳本之家 閱讀:312 作者:修煉千年的大餅 欄目:編程語言

繪制余弦曲線

要求:在屏幕上用“*”(星號)顯示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 <stdio.h>
#include <math.h>
 
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 <stdio.h>
#include <math.h>
#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<m;x++)
      printf(" ");
    printf("*\n");
    for(;x<(62-(m-31));x++)
      printf(" ");
    printf("*\n");
  }
  return 0;
}

運行結果:

[root@localhost 1_drawingcos]# ./drawingsin 
       * *
     *     *
    *       *
   *         *
   *          *
  *           *
  *            *
 *             *
 *              *
*               *
*               *
                *              *
                 *             *
                 *            *
                  *           *
                  *          *
                   *        *
                    *       *
                     *     *
                       **

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闻喜县| 霍城县| 丹巴县| 延安市| 海淀区| 桦南县| 福安市| 宾川县| 宜宾市| 巩义市| 灵宝市| 禹城市| 阳新县| 富锦市| 肃南| 平塘县| 南昌市| 太仓市| 三都| 嘉峪关市| 鱼台县| 博爱县| 页游| 山阴县| 防城港市| 湾仔区| 北票市| 乐山市| 左权县| 连云港市| 英山县| 营山县| 商河县| 梅州市| 惠东县| 德阳市| 衡东县| 长垣县| 诸暨市| 泰兴市| 漳浦县|