




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
TC常用命令簡介Turbo C常用繪圖命令簡介一、屏幕(設(shè)備)坐標系與平面坐標的區(qū)別略一個簡單的繪圖程序由進入圖形方式、繪圖和退出圖形方式三個組成部分。二、進入圖形方式進入圖形方式由圖形方式檢查和圖形初始化兩個步驟組成。圖形方式檢查:檢查適配器。圖形初始化:同一適配器有不同的模式可供選擇。首先在進入圖形方式之前須調(diào)用頭文件:graphics.h。即在主函數(shù)前使用語句:#include進入圖形方式使用的命令如下:void initgraph(int * gdriver,int *gmode,char *gpath);功能:初始化圖形系統(tǒng)。說明: 1) 函數(shù)中參數(shù)gdriver指向圖形驅(qū)動程序(或者等價值)。若使用DETECT(即等價值0)時,initgraph()函數(shù)自動檢測當前計算機中裝有的顯示卡類型,并且選用最大分辨率的顯示模式。2)參數(shù)gmode指向顯示模式gmode所指的值必須是有效模式之一,一旦gdriver=0,則自動選擇最佳模式。3)參數(shù)gpath指向圖形驅(qū)動程序所在的路徑,例如gpath=C:TCBG1.若沒有指定路徑,就在當前目錄下尋找。 一般圖形驅(qū)動程序包含在.BGI文件中,這些文件是系統(tǒng)可以得到的。例: 調(diào)用initgraph()自動檢測硬件圖形系統(tǒng),并選用最大分辨率顯示模式。 int gd,gm; gd=DETECT; initgraph(&gd,&gm,);三、繪圖一般繪圖時,首先要清除屏幕,設(shè)置圖形視口,設(shè)置繪圖顏色,然后在屏幕上某個位置畫點或直線或曲線等。下面給出具有這些功能的函數(shù)。1、屏幕和視口設(shè)置與清除函數(shù)(1)setviewport() 設(shè)置圖形視口函數(shù)功能: 函數(shù)setviewport() 設(shè)置當前圖形視口。用法: 函數(shù)調(diào)用方式為void setviewport(int left,int top,int right,int bottom,int clip);說明: 參數(shù)left,top是左上角坐標,right,bottom是右下角坐標,它們都是絕對屏幕坐標。如果參數(shù)clip為1,則超出視口的輸出圖形自動被裁剪掉,即所有作圖限制于當前圖形視口之內(nèi),如果clip為0,則不做裁剪,即作圖將無限制地擴展于視口周界之外,直到屏幕邊界。若無效參數(shù)傳入setviewport(),則graphresult()函數(shù)返回值-11,先前視口設(shè)置仍有效。例: 建立對角為(6,6)和(88,88)的視口,并帶有裁剪功能: setviewport(6,6,88,88,1);(2) clearviewport()清除圖形視口函數(shù)功能: 函數(shù)clearviewport()清除當前圖形視口,并把光標從當前位置移到原點(0,0)。用法: 該函數(shù)調(diào)用方式為void clearviewport(void);說明: 此函數(shù)調(diào)用執(zhí)行后,當前圖形視口將不復(fù)存在。例: 清除當前圖形視口,但并非整個屏幕: clearviewport();(3) cleardevice() 清除屏幕函數(shù)功能: 函數(shù)cleardevice() 清除整個屏幕,并且將當前位置移到屏幕原點。用法: 此函數(shù)調(diào)用方式為void cleardevice(void);說明: 該函數(shù)類似于文本模式下的函數(shù)clrscr(),但clrscr()函數(shù)不能在圖形方式下工作;同樣cleardevice()函數(shù)不能在文本模式下工作。例: 清除當前整個屏幕: cleardevice();2、設(shè)置顏色函數(shù)(1) setbkcolor() 設(shè)置背景顏色函數(shù)功能: 函數(shù)setbkcolor()把當前調(diào)色板顏色的第一個值改成指定的顏色值,以設(shè)置背景顏色。用法: 此函數(shù)調(diào)用方式為void setbkcolor(int color);說明: 參數(shù)color為指定的背景色,其有效值可以是顏色符號名,也可以是色彩值。下表列出了背景顏色供選取。顏色符號名 色彩值 顏色符號名 色彩值-BLACK(黑色) 0 DARKGRAY(深灰) 8BLUE(藍色) 1 LIGHTBLUE(淡藍) 9GREEN(綠色) 2 LIGHTGREEN(淡綠) 10CYAN(青色) 3 LIGHTCYAN(淡青) 11RED(紅色) 4 LIGHTRED(淡紅) 12MAGENTA(品紅) 5 LIGHTMAGENTA(粉紅) 13BROWN(棕色) 6 YELLOW(黃色) 14LIGHTGRAY(淡灰) 7 WHITE(白色) 15- 調(diào)用該函數(shù),將改變整個屏幕的顏色,如果新的背景色與原來屏幕的圖形顏色相同,盡管圖形信息不會丟失,但是看不見圖形了。如果所選背景色為對比鮮明的顏色,看不見的圖形就會重新清晰地顯現(xiàn)出來。例: 把背景色置為淡藍色 setbkcolor(LIGHTBLUE);(2)setcolor() 設(shè)置顏色函數(shù)功能: 函數(shù)setcolor()設(shè)置當前繪圖顏色(或稱做前景色)。用法: 該函數(shù)調(diào)用方式為void setcolor(int color);說明: 參數(shù)color為選擇的當前繪圖顏色。例: 設(shè)置16種不同的顏色,顯示16段直線:#includevoid main() int driver= DETECT,mode; int i; initgraph(&driver,&mode,); moveto(0,200); for(i=0;i16;i+) setcolor(i); linerel(20,0); getch();(3)getbkcolor() 返回背景色函數(shù)功能: 函數(shù)getbackcolor()返回當前背景顏色。用法: 函數(shù)調(diào)用方式為int getbackcolor(void);說明: 調(diào)用該函數(shù)后,獲得背景色,但其值不一定是調(diào)色板上的色彩值。返回值: 返回當前繪圖色彩值。例: 返回當前背景色彩值: printf(background color is %d, getbkcolor();(4). getcolor() 返回當前繪圖顏色用法: 此函數(shù)調(diào)用方式為int getcolor(void);返回值: 返回當前繪圖顏色值。3.屏幕位置函數(shù)(1) getx() 返回x坐標函數(shù)功能: 函數(shù)getx()返回當前圖形模式下當前位置的x坐標(水平像素坐標)。用法: 此函數(shù)調(diào)用方式為int getx(void);說明: 這里坐標是相對于當前圖形視口的,如果沒有設(shè)置圖形視口,那么缺省的圖形視口為整個屏幕。(2) gety() 返回y坐標函數(shù)功能: 函數(shù)gety()返回圖菜模式下當前位置的y坐標(垂直像素坐標)。用法: 此函數(shù)調(diào)用方式為int gety(void);說明: 函數(shù)返回的坐標是相對于當前圖形視口的,如果沒有設(shè)置圖形視口,那么缺省的圖形視口為整個屏幕。例: 顯示圖形模式下當前位置的x,y坐標值:printf(x: %d, y: %d, getx(),gety();(3) moveto()函數(shù)功能: 函數(shù)moveto()將當前位置移動到指定坐標的位置例: 把當前位置移到(66,88)位置上: moveto(66,88);(4)moverel() 相對移動函數(shù)功能: 函數(shù)moverel()根據(jù)指定的偏移量,將當前位置移動一個相對距離(即偏移量大小的距離),成為新的當前位置。用法: 此函數(shù)調(diào)用方式為void moverel(int dx,int dy);說明: 參數(shù)dx為x方向相對移動距離dy為y方向相對移動距離。相對移動對圖形應(yīng)用程序,往往要比絕對移動方便一些。例: 下面的程序,當語句執(zhí)行到當前位置在(90,90),則執(zhí)行后將移動到(100,120)的位置上。即x方向相對移動10,y方向相對移動30:moverel(10,30);4.繪圖函數(shù)(1)putpixel() 畫像素點函數(shù)功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫一個像素點。用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);說明: 參數(shù)x,y為像素點的坐標,color是該像素點的顏色,它可以是顏色符號名,也可以是整型色彩值。例: 在屏幕上(6,8)處畫一個紅色像素點: putpixel(6,8,RED);(2)getpixel()返回像素色函數(shù)功能: 函數(shù)getpixel()返回像素點顏色值。用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);例: 把屏幕上(8,6)點的像素顏色值賦給變量color。 color=getpixel(8,6);(3) 直線函數(shù)有三個畫直線的函數(shù),即line(),lineto(),linerel()。line() 畫線函數(shù)功能: 函數(shù)line()使用當前繪圖色、線型及線寬,在給定的兩點間畫一直線。用法: 該函數(shù)調(diào)用方式為void line(int startx,int starty,int endx,int endy);說明: 參數(shù)startx,starty為起點坐標,endx,endy為終點坐標。lineto() 畫線函數(shù)功能: 函數(shù)lineto()使用當前繪圖色、線型及線寬,從當前位置畫一直線到指定位置。用法: 此函數(shù)調(diào)用方式為void lineto(int x,int y);說明: 參數(shù)x,y為指定點的坐標,函數(shù)調(diào)用后,當前位置改變到指定點(x,y)。linerel() 相對畫線函數(shù)功能: 函數(shù)linerel() 使用當前繪圖色、線型及線寬,從當前位置開始,按指定的水平和垂直偏移距離畫一直線。用法: 這個函數(shù)調(diào)用方式為void linerel(int dx,int dy);說明: 參數(shù)dx,dy分別是水平偏移距離和垂直偏移距離。函數(shù)調(diào)用后,當前位置變?yōu)樵黾悠凭嚯x后的位置,例如,原來的位置是(8,6),調(diào)用函數(shù)linerel(10,18)后,當前位置為(18,24)。例: 下面的程序為畫線函數(shù)調(diào)用實例:#includevoid main() int driver=DETECT,mode; initgraph(&driver,&mode,); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64); getch();(4)多邊形函數(shù)rectangle() 畫矩形函數(shù)功能: 函數(shù)rectangle() 用當前繪圖色、線型及線寬,畫一個給定左上角與右下角的矩形(正方形或長方形)。用法: 此函數(shù)調(diào)用方式為void rectangle(int left,int top,int right,int bottom);說明: 參數(shù)left,top是左上角點坐標,right,bottom是右下角點坐標。drawpoly() 畫多邊形函數(shù)功能: 函數(shù)drawpoly() 用當前繪圖色、線型及線寬,畫一個給定若干點所定義的多邊形。用法: 此函數(shù)調(diào)用方式為void drawpoly(int pnumber,int *points);說明: 參數(shù)pnumber為多邊形的頂點數(shù);參數(shù)points指向整型數(shù)組,該數(shù)組中是多邊形所有頂點(x,y)坐標值,即一系列整數(shù)對,x坐標值在前。顯然整型數(shù)組的維數(shù)至少為頂點數(shù)的2倍,在定義了多邊形所有頂點的數(shù)組polypoints時,頂點數(shù)目可通過計算sizeof(polypoints)除以2倍的sizeof(int)得到,這里除以2倍的原因是每個頂點有兩個整數(shù)坐標值。另外有一點要注意,畫一個n個頂點的閉合圖形,頂點數(shù)必須等于n+1,并且最后一點(第n+1)點坐標必須等于第一點的坐標。例: 下面的程序畫一個封閉星形圖與一個不封閉星形圖:#includevoid main()int driver=DETECT,mode;static int polypoints118=100,100,110,120,100,130,120,125,140,140,130,120, 140,110,120,115,100,100;static int polypoints218=180,100,210,120,200,130,220,125,240,140,230,120, 240,110,220,115,220,110;initgraph(&driver,&mode,); drawpoly(9,polypoints1); drawpoly(9,polypoints2); getch(); restorecrtmode();(5) circle()畫圓函數(shù)功能: 函數(shù)circle()使用當前繪圖色并以實線畫一個完整的圓。用法:該函數(shù)調(diào)用方式為void circle(int x,int y,int radius);說明:參數(shù)x,y為圓心坐標,radius為圓半徑,用像素個素表示。四、退出圖形方式1.restorecrtmode() 恢復(fù)文本顯示模式函數(shù)功能: 函數(shù)restrecrtmode()將顯示模式恢復(fù)到調(diào)用initgraph()時檢測出的初始文本模式。用法: 這個函數(shù)調(diào)用方式為void restorecrtmode(void);說明: 函數(shù)restorecrtmode()和setgraphmode()函數(shù)一起使用,可以實現(xiàn)文本與圖形顯示之間的切換。返回值: 無2.setgraphmode() 設(shè)置圖形模式函數(shù) 功能: 函數(shù)setgraphmode()用當前圖形驅(qū)動程序有效的圖形模式調(diào)用,一旦被調(diào)用,setgraphmode()選擇一個新的圖形模式。注意,圖形顯示模式必須事先由initgraph()初始化。用法: 該函數(shù)調(diào)用方式為void setgraphmode(int mode);說明: 參數(shù)mode調(diào)用時為指定的模式值。3.closegraph()關(guān)閉圖形模式函數(shù)功能: 函數(shù)closegraph()將系統(tǒng)圖形模式關(guān)閉,復(fù)位到initgraph()初始文本模式,并且釋放圖形驅(qū)動程序、字體和內(nèi)部緩沖區(qū)所占用的系統(tǒng)內(nèi)存。用法: 這個函數(shù)調(diào)用方式為void closegraph(void);說明: 當用戶的程序既用到圖形輸出又用到非圖形輸出時,應(yīng)該調(diào)用此函數(shù)。特別是程序多次調(diào)用initgraph()函數(shù)的情況,要相應(yīng)地調(diào)用closegraph函數(shù),釋放調(diào)用initgraph()所占用的內(nèi)存,否則內(nèi)存很快就滿了,程序無法運行,如果程序結(jié)束,也可以用restorecrtmode()函數(shù)代替該函數(shù),這樣任何分配的內(nèi)存都將釋放。五、Tubro C繪圖程序?qū)嵗?花邊小桌布在半徑為整數(shù)r的圓周上,等距地放置n個頂點,然后用直線把這個n個頂點互相連接起來,當n足夠大時,所得到圖形像一塊帶花邊的小桌布。源代碼:#include#includevoid main() int gmode,gdrive=DETECT;/*#include*/int x,y,r;int i,j,n; float q; int a100,b100; initgraph(&gdrive,&gmode,); printf(input n,x,y,r:); scanf(%d,%d,%d,%d,&n,&x,&y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站安全應(yīng)急預(yù)案范本
- 鋼管廠安全生產(chǎn)會議記錄
- 貴州省黔東南苗族侗族自治州東南州名校2025屆高一物理第二學期期末教學質(zhì)量檢測試題含解析
- 冀教版五年級數(shù)學下冊教學計劃
- 關(guān)愛留守兒童班會活動方案
- 關(guān)于婚禮致辭
- 關(guān)于個人二手房屋買賣合同
- 公路工程竣工監(jiān)理工作總結(jié)
- 2025年貴州省銅仁市德江縣第二中學物理高一下期末質(zhì)量檢測模擬試題含解析
- 信息技術(shù)教師工作述職報告
- 有趣的漢字甲骨文演變完整模板
- (完整版)曲臂式高空作業(yè)車安全技術(shù)交底
- 2024年民族宗教政策法規(guī)宣傳月知識競賽考試題庫(含答案)
- 《3-6歲兒童學習與發(fā)展指南》考試參考題庫120題(含答案)
- 診所中藥飲片清單
- 零信任安全架構(gòu)-第1篇
- 《發(fā)酵飼料的應(yīng)用》課件
- 西式面點師(高級)課件 項目4 甜品制作
- 鼎捷T100-V1.0-銷售管理用戶手冊-簡體
- “三高共管、六病同防”工作實踐10-40-16
評論
0/150
提交評論