91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-10-04 16:56:03 來源:腳本之家 閱讀:257 作者:孤飛云逝 欄目:編程語言

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

#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坐標數據量
 
HDC hdc = 0;//控制臺繪圖設備描述句柄 HDC
HPEN hPen, hPen2;//畫筆變量
HPEN hPenOld;
TCHAR title[256];//控制臺程序標題
int times = 0;//繪制次數變量
double datay[XDATALEN];//曲線縱坐標數組
 
  //繪制清屏矩形
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);
 //繪制黑色矩形,范圍可根據需要自行更改
 Rectangle(hdc, ORIGINX, 0, ORIGINX + LENGTHX + 1, ORIGINY + LENGTHY + 1);
}
 
int main()
{
 //獲取控制臺標題
 GetConsoleTitle(title, 256);
 //先通過FindWindow函數借助標題獲取窗口句柄HWND,之后再利用GetDC函數借助HWND獲取HDC
 hdc = GetDC(FindWindow(0, title));
 hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));//設置曲線畫筆,紅色
 hPen2 = CreatePen(PS_SOLID, 3, RGB(0, 0, 255));//設置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);//生成曲線縱坐標數組
 }
 
 for (int i = 0; i < XDATALEN; i++)
 {
 //繪制線段,連接前一個點與下一個點,第二個參數為目標點x坐標,第三個參數為y坐標
 LineTo(hdc, LENGTHX * i / XDATALEN + ORIGINX, 0.5 * LENGTHY * datay[i] + ORIGINY);
 }
 //創建繪制x軸的pen并將其選入設備上下文
 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鍵跳出循環
 {
 break;
 }
 }
 }
 
 DeleteObject(hPen);//刪除畫筆
 DeleteObject(hPen2);//刪除畫筆
 return 0;
}

運行結果如下所示:

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

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

向AI問一下細節

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

AI

营口市| 河北省| 新营市| 重庆市| 德令哈市| 石嘴山市| 绍兴县| 阳山县| 长兴县| 桐庐县| 石家庄市| 右玉县| 黄梅县| 汶上县| 临清市| 嫩江县| 瑞安市| 桦川县| 峨边| 铁岭县| 枣庄市| 讷河市| 辽宁省| 新乐市| 碌曲县| 应城市| 盐山县| 阜新市| 岚皋县| 阿城市| 开阳县| 武冈市| 洞头县| 宁津县| 望都县| 宝兴县| 平潭县| 安平县| 宜君县| 甘德县| 宁波市|