一.initgraph函數(講解)轉自:https://blog.youkuaiyun.com/zhao_fu_lu/article/details/23961111
1.initgraph():初始化圖形系統
(1) 函數原型:void far initgraph(int far *graphdriver,int far *graphmode,char far *pathtodriver);
graphdriver:上漲指向圖形驅動序號變量的指針
graphmode:在graphdriver確定后,指向圖形顯示模式序號變量的指針
pathtodriver:表示存放圖形驅動文件的路徑
(2) 頭文件:graphics.h
不同的顯示器適配器有不同的圖形分辨率(即使是同一個顯示器適配器,在不同模式下也有不同的分辨率)
在未作圖之前,必須根據顯示器適配器種類將顯示器設置成為某種圖形格式。
在未設置圖形格式之前,微機系統默認屏幕為文本格式(80列,25行字符模式),此時所有的圖形函數都不能工作。
設置屏幕為圖形模式,可以用下列圖形化初始函數:void far initgraph(int far *gdriver,int far *gmode,char *path);
gdriver和gmode表示圖形驅動.顯示模式,path是指圖形驅動程序所在的目錄路徑。
圖形驅動程序由Turbo C出版商提供,文件擴展名為.BGI。根據不同的圖形適配器有不同的圖形驅動程序。
(3)初始化繪圖環境
HWWD initgraph(
int width;//繪制環境的寬度
int height;//繪制環境的高度
int flag=NULL//繪制環境的樣式,默認為NULL,可以為以下值
);
值 NOCLOSE NOMINIMIZE SHOWCONSOLE
含義 禁用繪圖環境的關閉按鈕 禁用繪圖環境的最小化按鈕 保留原控制台窗口
2.Turbo C提供了一個自動檢測顯示器硬件的函數,其調用格式為:
void far detectgraph(int *gdriver,*gmode);其中圖形驅動和顯示模式與上面相同
#include //使用圖形初始化函數設置VGA高分辨率圖形模式int main(){int gdriver, gmode;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver, &gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*畫一長方體*/
getch();
closegraph();
return 0;
}
注釋:bar3d三維條形圖 用法:void far bar3d{int left,int top,//三維空間矩形長條圖正面的左上角坐標
int right,int bottom,//三維空間矩形長條圖正面的右下角圖標
int depth,//三維空間矩形長條圖的深度(即陰影)
int topflag//設置是否繪制三維空間長條圖的頂部
};
//自動進行硬件測試后進行圖形初始化
#include
int main(){
int gdriver, gmode; /int gdriver=DETECT,gmode;
detectgraph(&gdriver, &gmode); /*自動測試硬件*/printf("the graphics driver is %d, mode is %d\n", gdriver,gmode); /*輸出測試結果*/getch();initgraph(&gdriver, &gmode, "c:\\tc"); initgraph(&gdriver,&gmode,"c:\\tc");/* 根據測試結果初始化圖形*/bar3d(10, 10, 130, 250, 20, 1);getch();closegraph();return 0;
}
上述程序中先對圖形顯示器自動檢測,然后再用圖形初始化函數進行初始化設置,但Turbo C提供了一種更簡單的方法,即用gdriver=DETECT語句后再跟initgraph()函數就行了。采用了這種方法后,上例可改為:上述注解
另外,Turbo C提供了退出圖形狀態的函數closegraph(),其調用格式為void far closegraph();調用該函數后可退出圖形雜狀態而進入文本格式(Turbo C默認方式),並釋放用於保存驅動程序和字體的系統內存。
#include "graphics.h"#include "stdio.h"int main(void){/* request auto detection */int gdriver = DETECT, gmode, errorcode;/* initialize graphics mode */initgraph(&gdriver, &gmode, "");/* read result of initialization */errorcode = graphresult();if (errorcode != grOk) /* an error occurred */{printf("Graphics error: %s\n", grapherrormsg(errorcode));printf("Press any key to halt:");getch();exit(1); /* return with error code */}/* draw a line */line(0, 0, getmaxx(), getmaxy());/* clean up */getch();closegraph();return 0;
}
二.在繪制圖形色彩時候遇到的隨機函數:rand函數(線性同余法)(產生隨機數)和srand(初始化隨機種子)
轉自:https://blog.youkuaiyun.com/github_37287822/article/details/77392130
頭文件:
(1)定義函數:int rand(void)
函數功能:產生隨機數
函數說明:因為rand的內部實現是用線性同余法做的,他不是真的隨機數,只不過是因為其周期特別長,所以,在一定的范圍里可看成是隨機的。
rand()會返回一隨機數值,范圍在0至RAND_MAX 間。
在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。
返回值: 返回0至RAND_MAX之間的隨機整數值,RAND_MAX的范圍最少是在32767之間(int),即雙字節(16位數)。若用unsigned int 雙字節是65535,四字節是4294967295的整數范圍。且0-RAND_MAX每個數字被選中的機率是相同的。
rand()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函數就是srand()。
(2)srand函數
頭文件:
定義函數:void srand(unsigned int seed);
函數說明:srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通常可以利用getpid()或者time(0)的返回值來當作seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
三.
(1)
DLL 文件: winmm 或者 winmm.dll
DLL 名稱: Windows Multimedia API
描述:
winmm.dll是Windows多媒體相關應用程序接口,用於低檔的音頻和游戲手柄。
#pragma comment( comment-type ,["commentstring"] )
comment-type是一個預定義的標識符,指定注釋的類型,應該是compiler,exestr,lib,linker之一
commentstring是一個提供為comment-type提供附加信息的字符串。
playsound的具體用法轉自:https://blog.youkuaiyun.com/ccx_john/article/details/12494129
(2)
RGB(red,green,blue)
RGB函數就是(1*R+256*G+65536*B)
文字:settextcolor(YELLOW);(顏色)
settextstyle(,,L”字體“);//高,寬
outtextsy(x,y,L”“); / /out(輸出).text(文字).指定坐標輸出文字
四.#include 庫函數詳解
轉自:http://blog.youkuaiyun.com/chenyiming_1990/article/details/8682552
兩個類型:
time_t:表示距離 UTC 時間 1970-01-01 00:00:00 的秒數。也叫做日歷時,類型是 long
clock_t: 只用於程序計時,貌似其他的沒它什么事。
struct tm:通常用於存儲本地時。
五.