最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言繪制曲線圖的示例代碼

 更新時(shí)間:2024年02月25日 09:38:58   作者:老花眼貓  
這篇文章主要介為大家詳細(xì)紹了如何使用C語(yǔ)言繪制統(tǒng)計(jì)圖中的曲線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

統(tǒng)計(jì)圖曲線圖繪制方法

常用的統(tǒng)計(jì)圖有條形圖、柱形圖、折線圖、曲線圖、餅圖、環(huán)形圖、扇形圖。

前幾類圖比較容易繪制,餅圖環(huán)形圖繪制較難。

曲線圖的曲線繪制較難,今提供曲線圖的繪制方法供參考。

本方法采用C語(yǔ)言的最基本功能:

( 1) 繪圖功能畫線,畫圓,畫長(zhǎng)方形。

(2) 界面美工設(shè)計(jì),界面文字打印輸出。

代碼中有詳細(xì)的注釋,通俗易懂,一看就會(huì)。

效果圖

實(shí)現(xiàn)代碼

下面提供2個(gè)繪制曲線圖的代碼:

//變量: 可設(shè)置成全局變量或私有變量
Canvas cs ;     //畫布,繪制圖表載體
float pi=3.1415926535 ;
float a ;            //三角函數(shù) sin (a), cos (a), 
float r ;             //圓半徑 radius
int i, j, n ;
float x0,y0,x1,y1 ;  //作圖坐標(biāo)
float dx,dy ;             //中心坐標(biāo)
string ss, ss1, ss2 ;         //打印文字
 int p[6] ;        //set data or  input  data
double pn ;   //顯示數(shù)據(jù)
 
//*************************  

CurveGraph6 (){   //曲線圖 6
      cs.ClearDraw (0,src);   //清屏
      clearOutput();
      selectStyle () ; //圖例樣式選項(xiàng)設(shè)置
      cs.SetFillMode (1);//0不填色,1填色
      cs.SetColor (255,250,250,250);
      cs.DrawRect (0,4,720,600);   //back board
      cs.SetColor (255,140,140,140);
      cs.DrawRect (24,24,706,586);   //back      
      cs.SetColor (255,250,250,250);
      cs.DrawRect (20,20,700,580);   //back 

      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor (255,0,0,240);
      cs.DrawRect (20,20,700,580);   //框線
      cs.DrawRect (24,24,696,576);   //框線

      cs.SetFillMode (1);//0不填色,1填色
      cs.SetStrokeWidth(1);
      cs.SetColor(255,220,220,220);
      for (j=0; j<=10 ; j++){   
      for (i=0; i<=7 ; i++){   
          dx=j*50+100 ;
          dy=i*50+50 ;
          cs.DrawRect(dx,dy,dx+49,dy+49);  }  }//grid

           cs.SetTextStyle (0);
           cs.SetColor(255,0,0,250);
      cs.DrawRect (50,450,670,452);   //X線
      cs.DrawRect (99,48,101,450);   //Y線
          cs.SetColor(255,250,0,0);
          cs.SetTextSize (18);
     cs.DrawRect (90,249,670,251);   //standard線
      cs.DrawText ("0.75", 52 ,109) ;
      cs.DrawText ("0.50", 52 ,159) ;
      cs.DrawText ("0.25", 52 ,209) ;
      cs.DrawText ("0", 65 ,259) ;
      cs.DrawText ("-0.25", 50 ,309) ;
      cs.DrawText ("-0.50", 50 ,359) ;
      cs.DrawText ("-0.75", 50 ,409) ;
 
      cs.SetTextStyle (0);     //畫標(biāo)尺
      cs.SetTextSize (18);
             cs.SetColor(255,50,80,80);
      ss=" 0         30       60        90      120      150 " ;
      ss1=" 180     210     240     270     300     330" ;
      cs.DrawText (ss,90,475) ;
      cs.DrawText (ss1,380,475) ;   //standard
      cs.SetTextSize (24);
      cs.DrawText ("Sec >",30, 475) ;

 //draw Curve graphics  繪制曲線
//* curve : x1 +5 標(biāo)尺x軸 0 位,  bs*5 步長(zhǎng)
//x0 曲線幅寬,   + -pn y軸峰谷弧高,  y+300 x軸y定位
// pn= 0 -- 200 高,bs=50*2
  int bs ;   //步長(zhǎng)
//p[1]=150; p[2]=80; p[3]=100; p[4]=50; p[5]=140;
         cs.SetColor (255,0,120,0);
  for (n=1; n<=5; n++){
        bs=n*100-100 ;
        //pn=p[n] ;
        Rn=random ()*90+50 ;
        pn=(int) Rn ;
  for (i=120;i<240;i++){
         a=pi/360*i*6 ;     //360 曲線點(diǎn)密度
         x0=50;
        // pn=170 ;
         x1=(float)((x0/pi*a)+bs);
         y1=(float)(- pn*sin(a)+250);
         cs.DrawCircle(x1,y1,2);   }   }
      cs.Update ();
          sleep (300) ;

  for (n=1; n<=5; n++){
        bs=n*100-100 ;
        Rn=random ()*40+40 ;
        pn=(int) Rn ;
  for (i=120;i<240;i++){
         a=pi/360*i*6 ;     //360 曲線點(diǎn)密度
         x0=50;
         x1=(float)((x0/pi*a)+bs);
         y1=(float)(- pn*sin(a)+250);
            cs.SetColor (255,250,100,160);
         cs.DrawCircle(x1,y1,1);   
            cs.SetColor (255,250,220,150);
         cs.DrawLine (x1,y1,x1,250) ;    }   }

 //draw title
       cs.SetFillMode (1);//0不填色,1填色
       cs.SetTextStyle (1);
       cs.SetStrokeWidth(1);
       cs.SetTextSize (26);
       cs.SetColor (255,0,220,150);
       cs.DrawText ("Curve Chart ??",470,80) ;
       cs.SetTextSize (50);
           ss="統(tǒng)計(jì)圖  -  曲線圖" ;
       cs.SetColor(255,50,120,20);      //立體字
           cs.DrawText (ss,164,534);    //陰影
      cs.SetColor(255,0,250,0);
           cs.DrawText (ss,160,530);    //本字
      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor(255,250,150,0);
           cs.DrawText (ss,160,530);    //框線
       cs.Update ();
}//CurveGraph6 ()

CurveGraph7 (){    //曲線圖 7:填充區(qū)域
      cs.ClearDraw (0,src);   //清屏
      clearOutput();
      selectStyle () ; //圖例樣式選項(xiàng)設(shè)置
      cs.SetFillMode (1);//0不填色,1填色
      cs.SetColor (255,250,250,250);
      cs.DrawRect (0,4,720,600);   //back board
      cs.SetColor (255,140,140,140);
      cs.DrawRect (24,24,706,586);   //back      
      cs.SetColor (255,250,250,250);
      cs.DrawRect (20,20,700,580);   //back 

      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor (255,0,0,240);
      cs.DrawRect (20,20,700,580);   //框線
      cs.DrawRect (24,24,696,576);   //框線

      cs.SetFillMode (1);//0不填色,1填色
      cs.SetStrokeWidth(1);
      cs.SetColor(255,220,220,220);
      for (j=0; j<=10 ; j++){   
      for (i=0; i<=7 ; i++){   
          dx=j*50+100 ;
          dy=i*50+50 ;
          cs.DrawRect(dx,dy,dx+49,dy+49);  }  }//grid

          cs.SetTextStyle (0);
          cs.SetTextSize (18);
          cs.SetColor(255,0,0,250);
      cs.DrawRect (50,450,670,452);   //X線
      cs.DrawRect (99,48,101,450);   //Y線
           cs.SetColor(255,250,0,0);
      cs.DrawRect (90,249,670,251);   //standard線
      cs.DrawText ("0.75", 52 ,107) ;
      cs.DrawText ("0.50", 52 ,157) ;
      cs.DrawText ("0.25", 52 ,207) ;
      cs.DrawText ("0", 65 ,257) ;
      cs.DrawText ("-0.25", 50 ,307) ;
      cs.DrawText ("-0.50", 50 ,357) ;
      cs.DrawText ("-0.75", 50 ,407) ;
 
      cs.SetTextStyle (1);     //畫標(biāo)尺
      cs.SetTextSize (18);
            cs.SetColor(255,0,0,0);
      ss=" 0         30       60        90      120      150 " ;
      ss1=" 180     210     240     270     300     330" ;
      cs.DrawText (ss,90,475) ;
      cs.DrawText (ss1,380,475) ;   //standard
      cs.SetTextSize (24);
      cs.DrawText ("Sec >",30, 475) ;

//draw Curve graphics  繪制曲線
//* curve : x1-bs 標(biāo)尺x軸 0 位,  bs 幅寬
//x0 X軸 0位,   + -pn y軸峰谷弧高,  y+250 x軸y定位
// pn= 0 -- 200,+ - pn> 正弦余弦。bs=幅寬
  int bs ;   //步長(zhǎng)
         cs.SetStrokeWidth(1);
         cs.SetColor (255,255,0,0);
   for (i=100;i<283;i++){
       a=pi/360*i*6 ;  //360 完整雙曲線,小于為局部段
       // x0=240 ;  bs=300 ;  pn=150 ;  //i=100-285 (1)
       x0=180 ;  bs=200 ;  pn=80 ;  //i=100-283 (2)
       x1=(float)((x0/pi*a)-bs);   //bs=50--300
       y1=(float)(-pn*sin(a)+250); //dy=250 Y軸center
           cs.SetColor (255,255,0,0);
        cs.DrawCircle(x1,y1,2);   
            cs.SetColor (255,0,0,250);
         cs.DrawLine (x1,y1,x1,250) ;      }

  for (n=1; n<=8; n++){    //draw 多條曲線
        Rn=random ()*60+100 ;
        pn=(int) Rn ;
   for (i=100;i<283;i++){
       a=pi/360*i*6 ;  //360 完整雙曲線,小于為局部段
       x0=180 ;  bs=200 ;  //pn=80 ;  
       x1=(float)((x0/pi*a)-bs);   //bs=50--300
       y1=(float)(-pn*sin(a)+250); //dy=250 Y軸center
     if (n==1||n==5) cs.SetColor (255,200,0,100);
     if (n==2||n==6) cs.SetColor (255,250,150,100);
     if (n==3||n==7) cs.SetColor (255,0,0,250);
     if (n==4||n==8) cs.SetColor (255,250,100,130);
         cs.DrawCircle(x1,y1,1.5);   }    }

//draw title
      cs.SetFillMode (1);//0不填色,1填色
        cs.SetTextStyle (1);
       cs.SetStrokeWidth(1);
       cs.SetTextSize (26);
      cs.DrawText ("Curve Chart ??",470,80) ;
      cs.SetTextSize (50);
         ss="統(tǒng)計(jì)圖  -  曲線圖" ;
      cs.SetColor(255,50,120,20);      //立體字
           cs.DrawText (ss,164,534);    //陰影
      cs.SetColor(255,0,250,0);
           cs.DrawText (ss,160,530);    //本字
      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor(255,250,150,0);
           cs.DrawText (ss,160,530);    //框線
       cs.Update ();
}//CurveGraph7 ()

到此這篇關(guān)于C語(yǔ)言繪制曲線圖的示例代碼的文章就介紹到這了,更多相關(guān)C語(yǔ)言曲線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在C語(yǔ)言編程中設(shè)置和獲取代碼組數(shù)的方法

    在C語(yǔ)言編程中設(shè)置和獲取代碼組數(shù)的方法

    這篇文章主要介紹了在C語(yǔ)言編程中設(shè)置和獲取代碼組數(shù)的方法,分別為setgroups()函數(shù)和getgroups()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼

    C語(yǔ)言以數(shù)據(jù)塊的形式讀寫文件實(shí)例代碼

    本文主要介紹C語(yǔ)言中以數(shù)據(jù)塊的形式讀寫文件,這里提供了實(shí)例代碼舉例說(shuō)明,有需要的小伙伴可以參考下
    2016-07-07
  • C語(yǔ)言簡(jiǎn)明講解快速排序的應(yīng)用

    C語(yǔ)言簡(jiǎn)明講解快速排序的應(yīng)用

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實(shí)實(shí)用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個(gè),還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影
    2022-05-05
  • C語(yǔ)言交換奇偶位與offsetof宏的實(shí)現(xiàn)方法

    C語(yǔ)言交換奇偶位與offsetof宏的實(shí)現(xiàn)方法

    offsetof()是C自帶的一個(gè)宏,它的作用就是計(jì)算結(jié)構(gòu)體成員相對(duì)于首地址處的偏移量,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言交換奇偶位與offsetof宏的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-02-02
  • C++標(biāo)準(zhǔn)庫(kù)介紹及使用string類的詳細(xì)過(guò)程

    C++標(biāo)準(zhǔn)庫(kù)介紹及使用string類的詳細(xì)過(guò)程

    C++中將string封裝為單獨(dú)的類,string?類是?C++?標(biāo)準(zhǔn)庫(kù)中的一個(gè)非常重要的類,用于表示和操作字符串,這篇文章主要介紹了C++標(biāo)準(zhǔn)庫(kù)介紹及使用string類,需要的朋友可以參考下
    2024-08-08
  • C語(yǔ)言在屏幕上輸出楊輝三角

    C語(yǔ)言在屏幕上輸出楊輝三角

    這篇文章主要介紹了在屏幕上輸出楊輝三角的方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • C++入門之內(nèi)存處理詳解

    C++入門之內(nèi)存處理詳解

    這篇文章主要為大家介紹了C++入門之內(nèi)存處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • C語(yǔ)言中指針的加減運(yùn)算方法示例

    C語(yǔ)言中指針的加減運(yùn)算方法示例

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中指針的加減運(yùn)算的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C語(yǔ)言具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼

    C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼

    這篇文章主要介紹了C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-03-03
  • C語(yǔ)言詳解結(jié)構(gòu)體的內(nèi)存對(duì)齊與大小計(jì)算

    C語(yǔ)言詳解結(jié)構(gòu)體的內(nèi)存對(duì)齊與大小計(jì)算

    C 數(shù)組允許定義可存儲(chǔ)相同類型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲(chǔ)不同類型的數(shù)據(jù)項(xiàng),本篇讓我們來(lái)了解C 的結(jié)構(gòu)體內(nèi)存對(duì)齊與計(jì)算大小
    2022-04-04

最新評(píng)論

甘谷县| 剑川县| 林口县| 芦山县| 汝阳县| 望都县| 九台市| 玉龙| 繁昌县| 潮州市| 泰安市| 阜阳市| 翁牛特旗| 双鸭山市| 沁水县| 蒙自县| 彭泽县| 清苑县| 富民县| 仙居县| 乌拉特后旗| 河曲县| 耒阳市| 苏尼特左旗| 福海县| 江达县| 松溪县| 城固县| 常熟市| 安化县| 长岛县| 米林县| 珲春市| 桃园市| 蓝田县| 扬中市| 石首市| 辽中县| 湖州市| 栖霞市| 永福县|