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

C語言控制臺應用程序GDI繪制正弦曲線

 更新時間:2019年06月01日 10:23:02   作者:孤飛云逝  
這篇文章主要為大家詳細介紹了C語言控制臺應用程序GDI繪制正弦曲線,具有一定的參考價值,感興趣的小伙伴們可以參考一下

出于本科教學的目的,需要使用C語言在Visual Studio下控制臺應用程序中動態(tài)繪制曲線,在此查閱了一些資料,制作了一個繪制動態(tài)正弦曲線的Demo,大家可根據(jù)這個例子查閱GDI、GDI+手冊,根據(jù)需求豐富自己的繪圖程序。

#include <windows.h>//引入wingdi.h
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <conio.h>
 
#define PI 3.1416
 
#define ORIGINX 0 //曲線起點X坐標
#define ORIGINY 200 //曲線起點Y坐標
#define LENGTHX 800 //X坐標軸長度
#define LENGTHY 300 //Y坐標軸長度
#define XDATALEN 300//X坐標數(shù)據(jù)量
 
HDC hdc = 0;//控制臺繪圖設(shè)備描述句柄 HDC
HPEN hPen, hPen2;//畫筆變量
HPEN hPenOld;
TCHAR title[256];//控制臺程序標題
int times = 0;//繪制次數(shù)變量
double datay[XDATALEN];//曲線縱坐標數(shù)組
 
  //繪制清屏矩形
void ClearWind(HDC hdc)
{
 HPEN hPen;
 HBRUSH hBrush;
 hBrush = CreateSolidBrush(RGB(0, 0, 0));
 hPen = CreatePen(PS_SOLID, 0, RGB(0, 0, 0));
 SelectObject(hdc, hBrush);
 SelectObject(hdc, hPen);
 //繪制黑色矩形,范圍可根據(jù)需要自行更改
 Rectangle(hdc, ORIGINX, 0, ORIGINX + LENGTHX + 1, ORIGINY + LENGTHY + 1);
}
 
int main()
{
 //獲取控制臺標題
 GetConsoleTitle(title, 256);
 //先通過FindWindow函數(shù)借助標題獲取窗口句柄HWND,之后再利用GetDC函數(shù)借助HWND獲取HDC
 hdc = GetDC(FindWindow(0, title));
 hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));//設(shè)置曲線畫筆,紅色
 hPen2 = CreatePen(PS_SOLID, 3, RGB(0, 0, 255));//設(shè)置X軸畫筆,藍色
 hPenOld = (HPEN)SelectObject(hdc, hPen);
 
 while (1)
 {
 ClearWind(hdc);//清屏
 hPenOld = (HPEN)SelectObject(hdc, hPen);//選擇畫筆
 MoveToEx(hdc, ORIGINX, ORIGINY, NULL);//移動到起點
 
 for (int i = 0; i < XDATALEN; i++)
 {
 datay[i] = sin(0.1*i + times);//生成曲線縱坐標數(shù)組
 }
 
 for (int i = 0; i < XDATALEN; i++)
 {
 //繪制線段,連接前一個點與下一個點,第二個參數(shù)為目標點x坐標,第三個參數(shù)為y坐標
 LineTo(hdc, LENGTHX * i / XDATALEN + ORIGINX, 0.5 * LENGTHY * datay[i] + ORIGINY);
 }
 //創(chuàng)建繪制x軸的pen并將其選入設(shè)備上下文
 hPenOld = (HPEN)SelectObject(hdc, hPen2);//選擇畫筆
 MoveToEx(hdc, ORIGINX, ORIGINY, NULL);//移動到起點
 LineTo(hdc, ORIGINX + LENGTHX, ORIGINY);//繪制X軸直線
 times++;
 Sleep(100);//延時100ms
 
 if (kbhit())//檢查是否有按鍵按下
 {
 if (_getch() == 0x1b)//若按下ESC鍵跳出循環(huán)
 {
 break;
 }
 }
 }
 
 DeleteObject(hPen);//刪除畫筆
 DeleteObject(hPen2);//刪除畫筆
 return 0;
}

運行結(jié)果如下所示:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ odr用法案例詳解

    C++ odr用法案例詳解

    這篇文章主要介紹了C++ odr用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++超詳細分析紅黑樹

    C++超詳細分析紅黑樹

    這一篇我要跟大家介紹二叉搜索樹中的另一顆樹——紅黑樹,它主要是通過控制顏色來控制自身的平衡,但它的平衡沒有AVL樹的平衡那么嚴格
    2022-03-03
  • C++之std::vector刪除元素的幾種方式及區(qū)別說明

    C++之std::vector刪除元素的幾種方式及區(qū)別說明

    這篇文章主要介紹了C++之std::vector刪除元素的幾種方式及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • c++ 對數(shù)器實現(xiàn)示例

    c++ 對數(shù)器實現(xiàn)示例

    對數(shù)器用于在自己的本地平臺驗證算法正確性,本文詳細的介紹了c++ 對數(shù)器實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++實現(xiàn)簡易的五子棋游戲

    C++實現(xiàn)簡易的五子棋游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡易的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++實現(xiàn)機票預訂系統(tǒng)

    C++實現(xiàn)機票預訂系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)機票預訂系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • tc編譯的dos程序和vc編譯的win32控制臺程序的異同

    tc編譯的dos程序和vc編譯的win32控制臺程序的異同

    tc編譯的dos程序和vc編譯的win32控制臺程序的異同...
    2007-08-08
  • C++鏈表節(jié)點的添加和刪除介紹

    C++鏈表節(jié)點的添加和刪除介紹

    大家好,本篇文章主要講的是C++鏈表節(jié)點的添加和刪除介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語言函數(shù)多個返回值方式

    C語言函數(shù)多個返回值方式

    這篇文章主要介紹了C語言函數(shù)多個返回值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C 語言實現(xiàn)一個簡單的 web 服務(wù)器的原理解析

    C 語言實現(xiàn)一個簡單的 web 服務(wù)器的原理解析

    這篇文章主要介紹了C 語言實現(xiàn)一個簡單的 web 服務(wù)器的原理解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

大洼县| 盘锦市| 神农架林区| 东安县| 肥乡县| 兰西县| 老河口市| 大新县| 五寨县| 阳高县| 平遥县| 安图县| 赤峰市| 霸州市| 大姚县| 绵竹市| 常山县| 三都| 米易县| 宜丰县| 金坛市| 屯门区| 比如县| 马龙县| 双流县| 梁山县| 东兰县| 班玛县| 永新县| 大新县| 青海省| 出国| 嘉祥县| 南江县| 资中县| 镇原县| 乌兰浩特市| 吴堡县| 莎车县| 沁源县| 万全县|