引言
C言語作為一種廣泛利用的編程言語,存在富強的功能,尤其在畫圖方面有著豐富的API支撐。經由過程這些API,我們可能輕鬆地在把持台或圖形窗口中繪製各種圖形跟動畫。本文將具體介紹C言語中常用的畫圖API,包含在把持台繪製跟圖形窗口繪製,幫助讀者懂得怎樣讓代碼動起來。
一、把持台畫圖
在把持台情況中,我們可能利用Windows API跟Turbo C供給的圖形庫停止畫圖。
1. 利用Windows API
Windows API供給了豐富的把持台畫圖函數,如system("cls")
用於清屏,printf
用於輸出文本。
#include <windows.h>
int main() {
HWND hwnd = GetConsoleWindow();
HDC hdc = GetDC(hwnd);
TextOut(hdc, 10, 10, TEXT("Hello World"), 11);
ReleaseDC(hwnd, hdc);
return 0;
}
2. 利用Turbo C圖形庫
Turbo C圖形庫供給了graphics.h
頭文件,其中包含畫圖函數,如initgraph
、setcolor
、drawpoly
等。
#include <graphics.h>
int main() {
int gdriver = DETECT, gmode, i;
int arw[16] = {200, 102, 300, 102, 300, 107, 330, 100, 300, 93, 300, 98, 200, 98, 200, 102};
initgraph(&gdriver, &gmode, "c:\\caicbgi");
setbkcolor(BLUE);
cleardevice();
setcolor(12);
drawpoly(8, arw);
getch();
closegraph();
return 0;
}
二、圖形窗口畫圖
在圖形窗口中,我們可能利用OpenGL、SDL等圖形庫停止畫圖。
1. 利用OpenGL
OpenGL是一個跨平台、功能富強的圖形庫,可能用於繪製二維跟三維圖形。
#include <GL/glut.h>
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(0.0, 0.0);
glVertex2f(1.0, 0.0);
glVertex2f(1.0, 1.0);
glVertex2f(0.0, 1.0);
glEnd();
glFlush();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGL Example");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
2. 利用SDL
SDL是一個簡單、跨平台的媒體庫,可能用於開辟遊戲跟動畫。
#include <SDL.h>
int main(int argc, char* argv[]) {
SDL_Window* window = SDL_CreateWindow("SDL Example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
SDL_Delay(5000);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
return 0;
}
三、總結
經由過程本文的介紹,信賴讀者曾經對C言語畫圖API有了開端的懂得。在現實利用中,我們可能根據須要抉擇合適的API停止畫圖,讓代碼動起來。