一) 像素函數(shù)
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)甘孜州,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
putpiel() 畫像素點(diǎn)函數(shù)
getpixel()返回像素色函數(shù)
(二) 直線和線型函數(shù)
line() 畫線函數(shù)
lineto() 畫線函數(shù)
linerel() 相對畫線函數(shù)
setlinestyle() 設(shè)置線型函數(shù)
getlinesettings() 獲取線型設(shè)置函數(shù)
setwritemode() 設(shè)置畫線模式函數(shù)
(三)、多邊形函數(shù)
rectangle() 畫矩形函數(shù)
bar() 畫條函數(shù)
bar3d() 畫條塊函數(shù)
drawpoly() 畫多邊形函數(shù)
(四)、 圓、弧和曲線函數(shù)
getaspectratio()獲取縱橫比函數(shù)
circle()畫圓函數(shù)
arc() 畫圓弧函數(shù)
ellipse()畫橢圓弧函數(shù)
fillellipse() 畫橢圓區(qū)函數(shù)
pieslice() 畫扇區(qū)函數(shù)
sector() 畫橢圓扇區(qū)函數(shù)
getarccoords()獲取圓弧坐標(biāo)函數(shù)
(五)、 填充函數(shù)
setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)
setfillpattern() 設(shè)置用戶圖樣函數(shù)
floodfill() 填充閉域函數(shù)
fillpoly() 填充多邊形函數(shù)
getfillsettings() 獲取填充設(shè)置函數(shù)
getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)
(六)、圖像函數(shù)
imagesize() 圖像存儲大小函數(shù)
getimage() 保存圖像函數(shù)
putimage() 輸出圖像函數(shù)
II、設(shè)定線型函數(shù)
在沒有對線的特性進(jìn)行設(shè)定之前,TURBO C 用其默認(rèn)值,即一點(diǎn)寬的實(shí)線,但TURBO C 也提供了可以改變線型的函數(shù)。
線型包括:寬度和形狀。其中寬度只有兩種選擇:一點(diǎn)寬和三點(diǎn)寬。而線的形狀則有五種。
下面介紹有關(guān)線型的設(shè)置函數(shù)。
void far setlinestyle(int linestyle,unsigned upattern,int thickness); 該函數(shù)用來設(shè)置線的有關(guān)信息,其中l(wèi)inestyle是線形狀的規(guī)定,見下表。
有關(guān)線的形狀(linestyle)
━━━━━━━━━━━━━━━━━━━━━━━━━
符號常數(shù) 數(shù)值 含義
—————————————————————————
SOLID_LINE 0 實(shí)線
DOTTED_LINE 1 點(diǎn)線
CENTER_LINE 2 中心線
DASHED_LINE 3 點(diǎn)畫線
USERBIT_LINE 4 用戶定義線
━━━━━━━━━━━━━━━━━━━━━━━━━
thickness是線的寬度,見下表。
有關(guān)線寬(thickness)
━━━━━━━━━━━━━━━━━━━━━━━━━
符號常數(shù) 數(shù)值 含義
—————————————————————————
NORM_WIDTH 1 一點(diǎn)寬
THIC_WIDTH 3 三點(diǎn)寬
━━━━━━━━━━━━━━━━━━━━━━━━━
對于upattern,只有l(wèi)inestyle選USERBIT_LINE 時(shí)才有意義 (選其它線型,uppattern取0即可)。此時(shí)uppattern的16位二進(jìn)制數(shù)的每一位代表一個(gè)象元,如果那位為1,則該象元打開,否則該象元關(guān)閉。
void far getlinesettings(struct linesettingstypefar *lineinfo);該函數(shù)將有關(guān)線的信息存放到由lineinfo 指向的結(jié)構(gòu)中,表中l(wèi)inesettingstype的結(jié)構(gòu)如下:
struct linesettingstype{
int linestyle;
unsigned upattern;
int thickness;
}
例如下面兩句程序可以讀出當(dāng)前線的特性
struct linesettingstype *info;
getlinesettings(info);
void far setwritemode(int mode);該函數(shù)規(guī)定畫線的方式。如果mode=0,則表示畫線時(shí)將所畫位置的原來信息覆蓋了(這是TURBO C的默認(rèn)方式)。如果mode=1, 則表示畫線時(shí)用現(xiàn)在特性的線與所畫之處原有的線進(jìn)行異或(XOR)操作, 實(shí)際上畫出的線是原有線與現(xiàn)在規(guī)定的線進(jìn)行異或后的結(jié)果。因此,當(dāng)線的特性不變,進(jìn)行兩次畫線操作相當(dāng)于沒有畫線。
有關(guān)線型設(shè)定和畫線函數(shù)的例子如下所示。
#includestdlib.h
#includegraphics.h
int main()
{
int gdriver, gmode, i;
gdriver=DETECT;
initgraph(gdriver, gmode, "c:\\caic\\bgi");
setbkcolor(BLUE);
cleardevice();
setcolor(GREEN);
circle(320, 240, 98);
setlinestyle(0, 0, 3); /*設(shè)置三點(diǎn)寬實(shí)線*/
setcolor(2);
rectangle(220, 140, 420, 340);
setcolor(WHITE);
setlinestyle(4, 0xaaaa, 1);
/*設(shè)置一點(diǎn)寬用戶定義線*/
line(220, 240, 420, 240);
line(320, 140, 320, 340);
getch();
closegraph();
return 0;
}
圖形和圖像函數(shù)包含在graphics.h里面(一) 像素函數(shù)56. putpiel() 畫像素點(diǎn)函數(shù)57. getpixel()返回像素色函數(shù)(二) 直線和線型函數(shù)58. line() 畫線函數(shù)59. lineto() 畫線函數(shù)60. linerel() 相對畫線函數(shù)61. setlinestyle() 設(shè)置線型函數(shù)62. getlinesettings() 獲取線型設(shè)置函數(shù)63. setwritemode() 設(shè)置畫線模式函數(shù)(三)、多邊形函數(shù)64. rectangle() 畫矩形函數(shù)65. bar() 畫條函數(shù)66. bar3d() 畫條塊函數(shù)67. drawpoly() 畫多邊形函數(shù)(四)、 圓、弧和曲線函數(shù)68. getaspectratio()獲取縱橫比函數(shù)69. circle()畫圓函數(shù)70. arc() 畫圓弧函數(shù)71. ellipse()畫橢圓弧函數(shù)72. fillellipse() 畫橢圓區(qū)函數(shù)73. pieslice() 畫扇區(qū)函數(shù)74. sector() 畫橢圓扇區(qū)函數(shù)75. getarccoords()獲取圓弧坐標(biāo)函數(shù)(五)、 填充函數(shù)76. setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)77. setfillpattern() 設(shè)置用戶圖樣函數(shù)78. floodfill() 填充閉域函數(shù)79. fillpoly() 填充多邊形函數(shù)80. getfillsettings() 獲取填充設(shè)置函數(shù)81. getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)(六)、圖像函數(shù)82. imagesize() 圖像存儲大小函數(shù)83. getimage() 保存圖像函數(shù)84. putimage() 輸出圖像函數(shù)四、圖形和圖像函數(shù)對許多圖形應(yīng)用程序,直線和曲線是非常有用的。但對有些圖形只能靠操作單個(gè)像素才能畫出。當(dāng)然如果沒有畫像素的功能,就無法操作直線和曲線的函數(shù)。而且通過大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫、擦除和與屏幕上的原有圖形進(jìn)行疊加。(一) 像素函數(shù)56. putpixel() 畫像素點(diǎn)函數(shù)功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫一個(gè)像素點(diǎn)。用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);說明: 參數(shù)x,y為像素點(diǎn)的坐標(biāo),color是該像素點(diǎn)的顏色,它可以是顏色符號名,也可以是整型色彩值。此函數(shù)相應(yīng)的頭文件是graphics.h返回值: 無例: 在屏幕上(6,8)處畫一個(gè)紅色像素點(diǎn):putpixel(6,8,RED);57. getpixel()返回像素色函數(shù)功能: 函數(shù)getpixel()返回像素點(diǎn)顏色值。用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);說明: 參數(shù)x,y為像素點(diǎn)坐標(biāo)。函數(shù)的返回值可以不反映實(shí)際彩色值,這取決于調(diào)色板的設(shè)置情況(參見setpalette()函數(shù))。這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h返回值: 返回一個(gè)像素點(diǎn)色彩值。例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。color=getpixel(8,6);
(一)
像素函數(shù)
1.
putpiel()
畫像素點(diǎn)函數(shù)
2.
getpixel()返回像素色函數(shù)
(二)
直線和線型函數(shù)
1.
line()
畫線函數(shù)
2.
lineto()
畫線函數(shù)
3.
linerel()
相對畫線函數(shù)
4.
setlinestyle()
設(shè)置線型函數(shù)
4.
getlinesettings()
獲取線型設(shè)置函數(shù)
5.
setwritemode()
設(shè)置畫線模式函數(shù)
(三)多邊形函數(shù)
1rectangle()
畫矩形函數(shù)
2bar()
畫條函數(shù)
3 bar3d()
畫條塊函數(shù)
4drawpoly()
畫多邊形函數(shù)
(四)
圓、弧和曲線函數(shù)
1getaspectratio()獲取縱橫比函數(shù)
2circle()畫圓函數(shù)
3 arc()
畫圓弧函數(shù)
4ellipse()畫橢圓弧函數(shù)
5fillellipse()
畫橢圓區(qū)函數(shù)
6pieslice()
畫扇區(qū)函數(shù)
7sector()
畫橢圓扇區(qū)函數(shù)
列舉不完,
建議去網(wǎng)站下載c函數(shù)大全。
有,你可以使用graphics.h 頭文件調(diào)用標(biāo)準(zhǔn)C函數(shù)
不過
16位c編譯器繪圖,就是中斷調(diào)用
turboc的圖形庫就是封裝了中斷調(diào)用,不過支持的分辨率最高只有640*480
并不支持SVGA
支持SVGA的高分辨率繪圖通過調(diào)用中斷 10h的4f功能來實(shí)現(xiàn)
主要分辨率設(shè)置代碼
unsigned char set_SVGA_mode(int vmode)
{union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,r,r);
return(r.h.ah);
}
void hide_text_cursor(void)
{union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,r,r);
}
void selectpage(register char page)
{union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page;
int86(0x10,r,r);
}
void show_text_cursor(char size)
{union REGS r;
r.h.ah=1;
r.h.cl=size;
r.h.ch=7;
int86(0x10,r,r);
}
unsigned int get_SVGA_mode()
{union REGS r;
r.x.ax=0x4f03;
int86(0x10,r,r);
return(r.x.bx);
}
這個(gè)在所有16位C編譯器里都可以使用,只是略有不同
與圖形有關(guān)的函數(shù)
GRAPHICS.H 庫文件
bar
【功能】畫出一條欄目。
【原型】void far bar(int left,int top,int right,int bottom)
【位置】graphics.hgraphics.h
【參見】bar3d,setfillstyle,rectangle
bar3d
【功能】畫出一條3-D欄目。
【原型】void far bar3d(int left,int top,int right,int bottom,int depth,int topflag)
【位置】graphics.h
【參見】bar
circle
【功能】以(x,y)為圓心按照指定的半徑畫出一個(gè)圓。
【原型】void far circle(int x,int y,int radius)
【位置】graphics.h
【參見】arc
cleardevice
【功能】清除圖形畫面。
【原型】void far cleardevice(void)
【位置】graphics.h
【參見】clearviewport
clearviewport
【功能】清除當(dāng)前可視區(qū)域。
【原型】clearviewport(void)
【位置】graphics.h
【參見】setviewport,cleardevice
closegraph
【功能】關(guān)閉圖形系統(tǒng)。
【原型】void far closegraph(void)
【位置】graphics.h
【參見】initgraph
detecgraph
【功能】通過檢查硬件確定使用的圖形驅(qū)動程序和模式。
【原型】void far detectgraph(int far *graphdriver,int far *graphmode)
【位置】graphics.h
【參見】initgraph,graphresult
drawpoly
【功能】畫出一個(gè)多邊形的輪廓。
【原型】void far drawpoly(int numpoints,int far polypoints[])
【位置】graphics.h
【說明】polypoints中包括一共numpoints對數(shù)值。其中每一對都給出了多邊形中一個(gè)頂點(diǎn)的x和y值。
【參見】fillpoly
ellipse
【功能】畫出一條橢圓形的圓弧。
【原型】void far ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius)
【位置】graphics.h
【說明】中心點(diǎn)在(x,y),stangle和endangle表示一角度為單位的起始角和終止角。Xradius和yradius表示水平軸和垂直軸。
【參見】arc,circle,fillellipse
fillellipose
【功能】畫出橢圓形圓弧,并填充。
【原型】void far fillllipse(int x,int y,int xradius,int yradius)
【位置】graphics.h
【說明】使用(x,y)作為中心點(diǎn),然后使用當(dāng)前的填充模式填充圓弧。Xradius和yradius表示水平軸和垂直軸。
【參見】arc,circle,ellipse,pieslice
fillpoly
【功能】畫出一個(gè)多邊形,并填充。
【原型】void far fillpoly(int numpoints,int far polypoints[])
【位置】graphics.h
【說明】polypoints中包含有numpoints對數(shù)值。其中每一對給出了多邊形一個(gè)頂點(diǎn)的x值和y值。
【參見】drawpoly,fill_patterns,floodfill,graphresult,setfillstyle
floodfill
【功能】填充一個(gè)有界區(qū)域范圍。
【原型】void far floodfill(int x,int y,int border)
【位置】graphics.h
【參見】drawpoly,fillpoly,fill_patterns,graphresult,setfillstyle
getarccoords
【功能】得到最后一次調(diào)用arc的坐標(biāo)值。
【原型】void far getaerccoords(struct arccoordstype far *arccoords)
【位置】graphics.h
【參見】arc
getaspectratio
【功能】得到當(dāng)前圖形模式的縱橫比。
【原型】void far getaspectratio(int far *xasp,int far *yasp)
【位置】graphics.h
【說明】are及類似函數(shù)使用縱橫比令圓圈更加圓,而不會像橢圓。Yasp應(yīng)當(dāng)為10000。當(dāng)象素為VGA平方并且10000時(shí),xasp使用10000數(shù)值。
【參見】arc,setaspectratio
getbkcolor
【功能】返回當(dāng)前背景顏色。
【原型】int far getbkcolor(void)
【位置】graphics.h
【參見】setbkcolor,getcolor,getpalette
getcolor
【功能】返回當(dāng)前畫筆的顏色。
【原型】int far getcolor(void)
【位置】graphics.h
【參見】getbkcolor,setcolor,getmaxcolor,getpalette
getdefaultpalette
【功能】返回調(diào)色板定義結(jié)構(gòu)。
【原型】struct palettetype *far getdefaultpalette(void)
【位置】graphics.h
【說明】返回一個(gè)指針,指向調(diào)用initgraph初始化時(shí),當(dāng)前驅(qū)動程序的默認(rèn)調(diào)色板結(jié)構(gòu)。
【參見】getpalette,initgraph
getdrivername
【功能】返回一個(gè)指針,指向當(dāng)前圖形驅(qū)動程序的名稱。
【原型】char *far getdrivername(void)
【位置】graphics.h
【說明】返回的指針指向標(biāo)識當(dāng)前驅(qū)動器程序的字符串,從而可以探測到硬件適配器。
【參見】initgraph
getfillpattern
【功能】將用戶定義的填充模式復(fù)制到內(nèi)存中。
【原型】void far getfillpattern(char far *pattern)
【位置】graphics.h
【參見】getfillsettings,setfillpattern,fill_patterns
getfillsettings
【功能】得到當(dāng)前填充模式及其顏色的有關(guān)信息。
【原型】void far getfillsettings(struct fillsettingstype far *fillinfo)
【位置】graphics.h
【參見】floodfill, fillpoly, setfillstyple, pieslice, setfillpattern, bar3d, bar, getfillpattern
getgraphmode
【功能】返回當(dāng)前圖形模式。
【原型】int far getgraphmode(void)
【位置】graphics.h
【說明】必須先調(diào)用initgraph或者setgraphmode。
【參見】setmoderange,restorectrtmode
getimage
【功能】將制定區(qū)域的位圖保存到內(nèi)存中。
【原型】void far getimage(int left,int top,int right,int bottom,void far *bitmap)
【位置】graphics.h
【參見】imagesize,putimage
因?yàn)樘嗔?,無法一一列出。比如下面的:
putimage
putpixel
rectangle
registerbgidriver
registerbgifont
restorecrtmode
sector
setactivepage
setallpalette
setaspectratio
setbkcolor
setcolor
setfillpattern
setfillstyle
setgraphbufsize
setgraphmode
setlinestyle
setpalette
setrgbcolor
setrgbpalette
settextjustify
settextstyle
setusercharsize
setviewport
setvisualpage
setwritemode
textheight
textwidth
建議你買本專業(yè)的書籍學(xué)習(xí)查看。