初學C/C++的人應該都會一個疑惑,爲什麼C/C++不能進行圖形編程?
雖然C/C++沒有自帶的圖形庫,但我們可以自己導入其他圖形庫,想graphcis.h之類的。
下面,我將介紹如何在VS中導入easyx圖形庫。
下載easyx圖形庫
easyx圖形庫可以到官網下載。這裏我下載的是2018春分版,下面也將以這個爲例進行介紹。
下載完成之後,雖然是一個應用程序,但我們可以右鍵進行解壓(如果右鍵沒有這一選項,就去下載一個解壓軟件,如WinRAR),解壓後的文件如圖所示。
導入easyx圖形庫
解壓之後,將include中的兩個文件放到VS相應include目錄中,lib中的文件一樣。
如圖所示。
將文件都拷貝到VS的目錄下面之後,就成功導入easyx圖形庫了。可以寫一個代碼檢測一下:
#include "pch.h"
#include <iostream>
#include<stdlib.h>
#include <graphics.h>
#include<math.h>
#include <windows.h>
DWORD WINAPI drawCircle(LPVOID lpParam) {
double pi = 3.1415926;
for (int i = 0; i < 800; i++) {
int x = 200 + 100*cos(i*pi/400);
int y = 200 + 100*sin(i*pi/400);
putpixel(x, y, RED);
Sleep(10);
}
return 0;
}
DWORD WINAPI drawRectangle(LPVOID lpParam) {
int x, y;
for (int i = 0; i < 800; i++) {
if (i < 200) {
x = 500 + i;
y = 100;
}
else if (i < 400) {
x = 700;
y = 100 + (i-200);
}
else if (i < 600) {
x = 700 - (i - 400);
y = 300;
}
else {
x = 500;
y = 300 - (i - 600);
}
putpixel(x, y, RED);
Sleep(10);
}
return 0;
}
int main(){
initgraph(800, 400);
setbkcolor(YELLOW);
HANDLE hThread[2];
hThread[0] = CreateThread(NULL, 0, drawCircle, NULL, 0, NULL);
hThread[1] = CreateThread(NULL, 0, drawRectangle, NULL, 0, NULL);
WaitForMultipleObjects(2, hThread, TRUE, INFINITE); //等待子線程運行
system("pause");
closegraph(); // 關閉繪圖窗口
return 0;
}