簡(jiǎn)介:1,第11章圖形應(yīng)用程序開(kāi)發(fā),111GDI繪圖基礎(chǔ)112圖形繪制113綜合應(yīng)用114圖像處理,2,1引例111,已知YAX2,畫(huà)出如下的函數(shù)圖形,,畫(huà)圖的步驟1準(zhǔn)備工作建立繪圖對(duì)象畫(huà)布、畫(huà)筆、畫(huà)刷2繪圖方法畫(huà)坐標(biāo)軸、刻度、標(biāo)記3利用函數(shù)已知X、獲得Y,畫(huà)線4釋放繪圖對(duì)象,111GDI基礎(chǔ)知識(shí),3,①構(gòu)造畫(huà)布、建立繪圖工具畫(huà)筆、畫(huà)刷、字體等用對(duì)象的CREATEGRAPHICS方法構(gòu)造GRAPHICS類(lèi)的實(shí)例DIMGASGRAPHICS控件對(duì)象CREATEGRAPHICS‘畫(huà)布DIMPASPENNEWPENCOLORBLUE,2’畫(huà)線DIMSBASBRUSHNEWSOLIDBRUSHCOLORBLUE‘寫(xiě)字顏色②調(diào)用繪圖方法繪制圖形利用DRAWLINE方法畫(huà)坐標(biāo)軸、刻度利用DRAWSTRING方法繪制刻度標(biāo)記和坐標(biāo)軸標(biāo)記③通過(guò)函數(shù)計(jì)算和DRAWLINE繪線④調(diào)用DISPOSE方法釋放繪圖對(duì)象,4,關(guān)鍵屏幕原點(diǎn),繪圖原點(diǎn)Y軸方向問(wèn)題Y取負(fù)值函數(shù)值縮放,能在規(guī)定的范圍內(nèi)繪制像素、刻度、函數(shù)值,,(X0,Y0,,,5,2什么是GDIGDI,CDI圖形設(shè)備接口GDI是一個(gè)可執(zhí)行程序,它接受WINDOWS應(yīng)用程序的繪圖請(qǐng)求(表現(xiàn)為GDI的函數(shù)調(diào)用),并將它們傳給相應(yīng)的設(shè)備驅(qū)動(dòng)程序。GDI是對(duì)圖形設(shè)備接口的一個(gè)擴(kuò)展,它所提供的類(lèi)可用于創(chuàng)建二維矢量圖形、操縱字體以及插入圖像。,6,3圖形開(kāi)發(fā)中最常用的類(lèi),7,1常用繪圖函數(shù),112繪制函數(shù)和方法,說(shuō)明1除DRAWLINE外,都要有RECTANGLE矩形區(qū)(X0,Y0,W,H2填空FILL,用筆改為刷例FILLPIEBRUSH,STARTANGLE,SWEEPANGLE,,X0,Y0,,H,,W,8,2GRAPHICS常用方法,9,,例114在窗體上按下對(duì)應(yīng)的按鈕,繪制圓柱、矩形、扇形、多邊形和曲線。,10,113字體和繪制文字,字體FONT類(lèi)決定文本的字體格式DIM字體對(duì)象ASNEWFONT字體,大小,樣式例DIMFASNEWFONT“仿宋“,20,FONTSTYLEBOLD構(gòu)建字體工具F,書(shū)寫(xiě)20象素的仿宋粗體字,1字體FONT,11,2繪制文字,DRAWSTRINGSTRING,FONT,BRUSH,POINT文字字體格式顏色起點(diǎn)坐標(biāo)118利用DRAWSTRING函數(shù)顯示陰影效果文字,方法1兩個(gè)字符串位置不同,顏色不同2灰色陰影設(shè)置畫(huà)刷SOLIDBRUSHCOLORFROMARGB透明度,COLORBLACK,12,1繪制藝術(shù)圖實(shí)驗(yàn)111,繪制算法思想(1)將圓心為X0,Y0、半徑為R的圓周上,分為N個(gè)等分點(diǎn)為圓心X,Y,以半徑R1繪制N個(gè)圓。(2)已知圓心X0,Y0,求該圓周上X,Y點(diǎn)(見(jiàn)右)的方程為XX0RCOSΑYY0RSINΑ3利用繪園方法,0≤Α≤2Π,GDRAWELLIPSEP,XR,YR,2R,2RCIRCLEX,Y,R,114應(yīng)用,13,2繪制函數(shù)圖實(shí)驗(yàn)SIN,繪制SIN曲線1聲明繪圖對(duì)象畫(huà)布、畫(huà)筆、畫(huà)刷、字體2計(jì)算X軸比例(像素、弧度)、繪制坐標(biāo)軸和刻度3通過(guò)函數(shù)繪制SIN曲線Y軸放大倍數(shù)、Y軸方向與數(shù)值關(guān)系進(jìn)一步思考1X、Y軸寫(xiě)軸標(biāo)記2若要填充顏色如何實(shí)現(xiàn),14,3繪制統(tǒng)計(jì)圖,例1112從文件中讀入數(shù)據(jù),并用這些數(shù)據(jù)繪制統(tǒng)計(jì)圖。,,,,,15,統(tǒng)計(jì)設(shè)計(jì)思想,①文件讀入順序文件可使用FILEOPEN方法打開(kāi),然后用INPUT語(yǔ)句將數(shù)據(jù)讀入到數(shù)組。②銷(xiāo)售比例計(jì)算某教材的發(fā)行量/將發(fā)行量之和③顯示百分比FORMAT比例值100,““““,,,,16,繪制餅圖思想,計(jì)算總和,計(jì)算單位值占角度360/SUM設(shè)置起始角度利用循環(huán)計(jì)算每塊餅占角度A,調(diào)用函數(shù)GFILLPIEBRI,RECT,A1,A求下一個(gè)起始角A1A1A,,,,,,X,Y,A1,,A,17,繪制直方圖思想,畫(huà)坐標(biāo)軸求數(shù)據(jù)最大值,計(jì)算單位值占高度比例H/MAX利用循環(huán)計(jì)算每塊X、Y值位置,其中X等分,Y數(shù)值乘以比例調(diào)用函數(shù)GFILLRECTANGLESB,X1,HY,25,Y,X1,HY,,Y,18,本章小節(jié),GDI圖形處理類(lèi)包含在SYSTEMDRAWING命名空間使用GDI在對(duì)象上繪制圖形過(guò)程構(gòu)造畫(huà)布建立繪圖工具畫(huà)筆、畫(huà)刷、字體等調(diào)用繪圖方法繪制圖形調(diào)用DISPOSE方法釋放繪圖對(duì)象繪圖工具畫(huà)筆PEN、畫(huà)刷BRUSH、字體FONT圖形繪制通過(guò)繪圖函數(shù)來(lái)完成。以DRAW為前綴的函數(shù)用于繪制圖形,以FILL為前綴的函數(shù)用于區(qū)域填充掌握函數(shù)圖、藝術(shù)圖、統(tǒng)計(jì)圖繪制,19,114自主學(xué)習(xí)圖像處理,任務(wù)2加載和顯示圖片,,,,20,114圖像處理,加載圖像文件中的圖像并將其顯示在屏幕上,則需要BITMAP對(duì)象和GRAPHICS對(duì)象。BITMAP類(lèi)支持BMP、GIF、JPEG、PNG和TIFF等多種文件格式。在創(chuàng)建BITMAP對(duì)象之后,使用GRAPHICS對(duì)象的DRAWIMAGE函數(shù),就可以顯示圖像文件中的圖像。下面的代碼從JPEG文件創(chuàng)建BITMAP對(duì)象,然后繪制該圖像。,,,,21,114圖像處理,DIMPICASBITMAPNEWBITMAP“FRUITJPG“根據(jù)圖像文件聲明BITMAP對(duì)象DIMGASGRAPHICSMECREATEGRAPHICSGDRAWIMAGEPIC1,5,5,300,200從5,5開(kāi)始繪制300200的圖像,,,,22,114圖像處理,任務(wù)3裁切和縮放圖像,,,,23,裁切和縮放圖像,設(shè)計(jì)分析DRAWIMAGE方法通過(guò)源矩形從原始圖像裁切部分圖像,根據(jù)目標(biāo)矩形的寬度和高度與源矩形的寬度和高度之比就可對(duì)圖像進(jìn)行縮放。設(shè)置DRAWIMAGE函數(shù)不同的參數(shù),可實(shí)現(xiàn)裁切和縮放圖像。,,,,24,裁切和縮放圖像,使用格式DRAWIMAGE圖像對(duì)象,起始點(diǎn)X,Y,寬,高參數(shù)寬度與高度,可控制圖片的放大與縮小。當(dāng)寬度與高度為負(fù)值時(shí),可實(shí)現(xiàn)圖像在水平或垂直方向翻轉(zhuǎn)。DRAWIMAGE圖像對(duì)象,目標(biāo)矩形,源矩形,GRAPHICSUNITPIXEL源矩形定義了圖像對(duì)象將被讀取的區(qū)域,目標(biāo)矩形對(duì)被裁切到的圖像重新繪制,GRAPHICSUNITPIXEL指定繪制單位為像素。,,,,25,裁切和縮放圖像,使用格式DRAWIMAGE圖像對(duì)象,起始點(diǎn)X,Y,寬,高參數(shù)寬度與高度,可控制圖片的放大與縮小。當(dāng)寬度與高度為負(fù)值時(shí),可實(shí)現(xiàn)圖像在水平或垂直方向翻轉(zhuǎn)。DRAWIMAGE圖像對(duì)象,目標(biāo)矩形,源矩形,GRAPHICSUNITPIXEL源矩形定義了圖像對(duì)象將被讀取的區(qū)域,目標(biāo)矩形對(duì)被裁切到的圖像重新繪制,GRAPHICSUNITPIXEL指定繪制單位為像素。,,,,26,114圖像處理,任務(wù)4旋轉(zhuǎn)、反射和扭曲圖像,,,,27,旋轉(zhuǎn)、反射和扭曲圖像,使用圖像對(duì)象的ROTATEFLIP方法翻轉(zhuǎn)或者同時(shí)旋轉(zhuǎn)和翻轉(zhuǎn)圖像。其格式是圖像對(duì)象ROTATEFLIPROTATEFLIPTYPE成員,,,,28,本章小節(jié),GDI圖形處理類(lèi)包含在SYSTEMDRAWING命名空間使用GDI在對(duì)象上繪制圖形過(guò)程構(gòu)造畫(huà)布建立繪圖工具畫(huà)筆、畫(huà)刷、字體等調(diào)用繪圖方法繪制圖形調(diào)用DISPOSE方法釋放繪圖對(duì)象繪圖工具畫(huà)筆PEN、畫(huà)刷BRUSH、字體FONT圖形繪制通過(guò)繪圖函數(shù)來(lái)完成。以DRAW為前綴的函數(shù)用于繪制圖形,以FILL為前綴的函數(shù)用于區(qū)域填充,29,思考題,1簡(jiǎn)述GDI的內(nèi)容及其包含的命名空間,SYSTEMDRAWING命名空間中主要包含哪些類(lèi)各類(lèi)的主要功能是什么2簡(jiǎn)述GDI繪制圖形的基本步驟。3怎樣用ALPHA通道淡化顏色4怎樣繪制帶有箭頭的X軸5怎樣繪制圓、橢圓、圓弧和扇形6怎樣在圖形中繪制文字,,,,,30,思考題,6怎樣在圖形中繪制文字7如何使用漸變刷、網(wǎng)格刷、紋理刷填充文字8繪一圓弧其終止角度為正數(shù)時(shí)其繪圖方向是什么9.在GDI中如何實(shí)現(xiàn)坐標(biāo)變換10.簡(jiǎn)述DRAWIMAGE函數(shù)處理圖像的方法。,,,,,31,1112坐標(biāo)系,默認(rèn)坐標(biāo)系,在繪制數(shù)學(xué)函數(shù)YFX的圖形時(shí),一般兩種處理方式1進(jìn)行坐標(biāo)的變換,例如旋轉(zhuǎn),平移等。2設(shè)置原點(diǎn)坐標(biāo)X0、Y0,直接進(jìn)行XX0,32,GRAPHICE對(duì)象坐標(biāo)變換方法,,,33,畫(huà)筆PEN,例113用畫(huà)筆畫(huà)線DIMGASGRAPHICS聲明GRAPHICSGMECREATEGRAPHICS構(gòu)造畫(huà)布GDIMPASNEWPENCOLORRED,55象素的紅色畫(huà)筆PSETLINECAPLINECAPFLAT,LINECAPARROWANCHOR,DASHCAPFLAT設(shè)置直線起終端的樣式GDRAWLINEP,50,10,300,10在畫(huà)布上畫(huà)有箭頭的線PENDCAPLINECAPFLAT取消畫(huà)筆終止端的樣式PDASHSTYLEDASHSTYLEDASHDOT設(shè)置點(diǎn)劃線樣式PWIDTH2‘設(shè)置線寬2象素GDRAWLINEP,50,30,300,30在畫(huà)布上畫(huà)點(diǎn)劃線,34,1122圖形填充,1.畫(huà)刷畫(huà)刷BRUSH主要用于封閉圖形的填充。不能直接將BRUSH類(lèi)實(shí)例化,而只能實(shí)例化它的子類(lèi)對(duì)象。常用的BRUSH的子類(lèi)有單色刷SOLIDBRUSH紋理刷TEXTUREBRUSH漸變刷LINEARGRADIENTBRUSH網(wǎng)格刷HATCHBRUSH,35,1122圖形填充,1單色刷只能用一種顏色填充區(qū)域DIMSBASSOLIDBRUSHNEWSOLIDBRUSHCOLORBLUE聲明了一個(gè)藍(lán)色的單色刷SB2.紋理刷用一個(gè)圖片來(lái)填充圖形DIMTBASNEWTEXTUREBRUSHNEWBITMAP“圖片”例使用圖片創(chuàng)建的紋理刷TBDIMTBASNEWTEXTUREBRUSHNEWBITMAP“IFGIF“,36,畫(huà)刷BRUSH,3.漸變刷用線性漸變色來(lái)填充圖形DIMLBASNEWLINEARGRADIENTBRUSHPOINT1,POINT2,COLOR1,COLOR2參數(shù)POINT1、POINT2構(gòu)成一個(gè)矩形區(qū)域,COLOR1、COLOR2分別設(shè)置漸變的起始點(diǎn)顏色和終點(diǎn)顏色。例DIMLBASNEWLINEARGRADIENTBRUSHPT1,PT2,COLORBLUE,COLORWHITE漸變刷LB4.網(wǎng)格刷根據(jù)條紋模式來(lái)設(shè)置填充類(lèi)型DIMHBASNEWHATCHBRUSH條紋類(lèi)型,前景色,背景色例DIMHBASNEWHATCHBRUSHHATCHSTYLEDARKHORIZONTAL,COLORBLUE,COLORYELLOW網(wǎng)格刷HB,37,畫(huà)刷范例,例115演示漸變刷、網(wǎng)格刷、紋理刷三種畫(huà)刷的效果,38,繪制扇形例,DIMGASGRAPHICSGMECREATEGRAPHICSDIMPASNEWPENCOLORBLUE,4畫(huà)筆DIMRECTASNEWRECTANGLE5,5,180,180GDRAWPIEP,RECT,45,135DIMHBASNEWHATCHBRUSHHATCHSTYLECROSS,COLORBLUE,COLORYELLOW網(wǎng)格刷GFILLPIEHB,RECT,45,135,39,1123字體FONT,字體FONT類(lèi)決定文本的字體格式字體類(lèi)型、大小以及風(fēng)格。用FONT類(lèi)的構(gòu)造函數(shù)建立一種字體,需要3個(gè)參數(shù)DIM字體對(duì)象ASNEWFONT字體,大小,樣式例DIMFASNEWFONT“仿宋“,20,FONTSTYLEBOLD構(gòu)建字體工具F,書(shū)寫(xiě)20象素的仿宋粗體字,40,本章學(xué)習(xí)目標(biāo),通過(guò)本章的學(xué)習(xí),能夠靈活運(yùn)用GDI提供的功能繪制圖形。學(xué)習(xí)要點(diǎn)1創(chuàng)建GRAPHICS對(duì)象,使用GDI繪圖。2使用畫(huà)筆和填充工具,學(xué)習(xí)描述對(duì)象的顏色和透明度的COLOR結(jié)構(gòu)繪制各種圖形。3使用圖像功能進(jìn)行翻轉(zhuǎn)、縮放、剪切等圖像處理。,41,111GDI基礎(chǔ)知識(shí),GDI在SYSTEMDRAWINGDLL程序集中定義,它的相關(guān)類(lèi)都分布在以下命令空間SYSTEMDRAWING提供GDI基本圖形功能SYSTEMDRAWING2D提供高級(jí)的二維和矢量圖形功能。SYSTEMIMAGING提供GDI圖像處理功能SYSTEMDRAWINGTEXT字體處理功能,42,例118在窗體上輸出陰影文字效果。陰影效果其實(shí)質(zhì)是將同一文本內(nèi)容顯示兩遍,利用位置的相錯(cuò)和顏色的變化來(lái)實(shí)現(xiàn)。以下代碼將產(chǎn)生陰影文字效果DIMGASGRAPHICSGMECREATEGRAPHICSDIMFASNEWFONT“宋體“,50,FONTSTYLEBOLDDIMSB1ASNEWSOLIDBRUSHCOLORBLACK構(gòu)造畫(huà)刷DIMSB2ASNEWSOLIDBRUSHCOLORFROMARGB100,COLORBLACK構(gòu)造畫(huà)刷SB2GDRAWSTRING“陰影效果“,F,SB2,33,43GDRAWSTRING“陰影效果“,F,SB1,30,40,
下載積分: 4 賞幣
上傳時(shí)間:2024-01-06
頁(yè)數(shù): 42
大?。?1.51(MB)
子文件數(shù):