• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(8)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                在該隨筆中將介紹一些GDI的繪圖函數(shù),以加深您對(duì)于程序繪圖的認(rèn)識(shí)。

            1、文字輸出
                 窗口畫(huà)面上的文字輸出比后面所要介紹的幾個(gè)繪圖函數(shù)還要重要,因?yàn)樵诔绦蛟O(shè)計(jì)時(shí),可能有時(shí)需要在畫(huà)面上顯示一些數(shù)據(jù)和信息,以利于程序本身的追蹤與排錯(cuò)。

            范例ch2_2:根據(jù)鼠標(biāo)的移動(dòng),將光標(biāo)所在位置的坐標(biāo)值顯示在窗口中。
            下載:ch2_2(上傳到windows live空間,可能需要MSN賬號(hào)登陸)
            說(shuō)明:程序源代碼中有相關(guān)的注釋。
            運(yùn)行結(jié)果如下圖:


            2、多邊形函數(shù)
                下表中給出了GDI函數(shù)中關(guān)于多邊形的繪圖函數(shù): 

            函數(shù)名稱

            說(shuō)明

            Polygon

            繪制封閉多邊形

            PolyLine

            繪制多邊線條

            PolylineTo

            以當(dāng)前畫(huà)筆所在位置繪制多邊線條

            PolyPolygon

            繪制多個(gè)封閉多邊形

            PolyPolyline

            繪制多個(gè)多邊線條

                以上幾個(gè)函數(shù)的使用方法大同小異,以Polygon()函數(shù)來(lái)做說(shuō)明。
            BOOL Polygon(HDC hdc, CONST POINT 點(diǎn)數(shù)組指針, int 多邊形點(diǎn)數(shù));  //繪制多邊形
                第2個(gè)參數(shù)輸入的是一個(gè)POINT結(jié)構(gòu)的數(shù)組指針,POINT可用于描述一個(gè)坐標(biāo)點(diǎn),其結(jié)構(gòu)如下:
            typedef struct tagPOINT{
                                                                    LONG x; 
            // X坐標(biāo)
                                                                    LONG y; // Y坐標(biāo)
                                                                  }
             POINT;

            范例ch2_3:展示多邊形繪制函數(shù)的用法,并在窗口中繪制多邊形。
            下載:ch2_3(上傳到windows live空間,可能需要MSN賬號(hào)登陸)
            說(shuō)明:程序源代碼中有相關(guān)的注釋。
            運(yùn)行結(jié)果如下圖:


            3、封閉圖形函數(shù)
                下邊再來(lái)討論一下封閉幾何圖形的繪制方法,“畫(huà)筆與畫(huà)刷”隨筆中介紹了畫(huà)矩形的Rectangle()函數(shù),現(xiàn)在再來(lái)看看畫(huà)橢圓形的GDI函數(shù)。
            BOOL Ellipse( HDC hdc,   //繪制橢圓形
                                                int 外圍矩形左上點(diǎn)X坐標(biāo),
                                               
            int 外圍矩形左上點(diǎn)Y坐標(biāo),
                                               
            int 外圍矩形右下點(diǎn)X坐標(biāo),
                                               
            int 外圍矩形右下點(diǎn)Y坐標(biāo));
                 上面的函數(shù)說(shuō)明確定一個(gè)外圍矩形就可以產(chǎn)生橢圓形。
                  
                 下面再來(lái)看看繪制圓角矩形的函數(shù)。
            BOOL RoundRect( HDC hdc,    //繪制圓角矩形 
                                                         int 外圍矩形左上點(diǎn)X坐標(biāo),
                                                         
            int 外圍矩形左上點(diǎn)Y坐標(biāo),
                                                        
            int 外圍矩形右下點(diǎn)X坐標(biāo),
                                                        
            int 外圍矩形右下點(diǎn)Y坐標(biāo)

                                                        
            int 圓角上橢圓長(zhǎng),
                                                        
            int 圓角上橢圓高)
            ;
                在這個(gè)函數(shù)中,除了給定外圍矩形的坐標(biāo)外,還給定了圓角上橢圓的長(zhǎng)與高,用來(lái)表示圓角的弧度。

                最后來(lái)說(shuō)明繪制扇形(Pie)與弓形(Chord)函數(shù),扇形與弓形都是橢圓的一部分。
                扇形與弓形都有連接的起點(diǎn)與終點(diǎn),不同之處在于,扇形還會(huì)與橢圓的中心點(diǎn)相連接,而弓形則直接連接起點(diǎn)與終點(diǎn)。繪制扇形的函數(shù)為Pie(),繪制弓形的函數(shù)則為Chord(),兩者輸入的參數(shù)意義都相同,下面以Pie()函數(shù)為例來(lái)進(jìn)行說(shuō)明。
            BOOL Pie (  HDC hdc,   //繪制扇形
                                 
            int 外圍矩形左上點(diǎn)X坐標(biāo),
                                 
            int 外圍矩形左上點(diǎn)Y坐標(biāo),
                                 
            int 外圍矩形右下點(diǎn)X坐標(biāo),
                                 
            int 外圍矩形右下點(diǎn)Y坐標(biāo),
                                  
            int 起點(diǎn)X坐標(biāo),
                                 
            int 起點(diǎn)Y坐標(biāo),
                                 
            int 終點(diǎn)X坐標(biāo),
                                 
            int 終點(diǎn)Y坐標(biāo));

            范例ch2_4:顯示封閉圖形繪制函數(shù)的用法,并在窗口中繪制不同圖形。
            下載:ch2_4(上傳到windows live空間,可能需要MSN賬號(hào)登陸)
            說(shuō)明:程序源代碼中有相關(guān)的注釋。
            運(yùn)行結(jié)果如下圖:
             

            PS:如想獲得更多關(guān)于Visual C++游戲開(kāi)發(fā)的內(nèi)容,可點(diǎn)擊隨筆:《Visual C++游戲編程基礎(chǔ)》學(xué)習(xí)筆記——索引隨筆

            Feedback

            # re: GDI繪圖函數(shù) 2010-04-08 17:39 陳梓瀚(vczh)
            GDI原則上可以做到跟GDI+一樣,使用帶透明漸變顏色或圖片的Brush,使用任意Brush構(gòu)造Pen,使用任意Brush和Pen畫(huà)圖。雖然效率可能會(huì)慢一點(diǎn)點(diǎn)(GDI+也快不起來(lái)),只要你熟練地將clipping和transparent API用好。

            http://www.shnenglu.com/vczh/archive/2009/08/02/91972.html  回復(fù)  更多評(píng)論
              

            # re: GDI繪圖函數(shù) 2010-04-08 17:41 煙皚
            clipping和transparent API?
            剛接觸,不是很了解的說(shuō),為什么要把這兩個(gè)掌握好呢?  回復(fù)  更多評(píng)論
              

            # re: GDI繪圖函數(shù) 2012-05-11 15:27 薩芬的
            是的  回復(fù)  更多評(píng)論
              

            99久久国产精品免费一区二区 | 婷婷久久综合九色综合九七| 一本一本久久A久久综合精品 | 国产精品对白刺激久久久| 久久精品国产免费观看三人同眠| 欧美久久综合九色综合| 日本精品久久久久久久久免费| 国产99久久久国产精品~~牛| 亚洲欧美日韩精品久久| 久久五月精品中文字幕| 久久人搡人人玩人妻精品首页| 色婷婷久久久SWAG精品| 国产亚洲精品久久久久秋霞| 久久久久亚洲AV无码网站| 69SEX久久精品国产麻豆| 伊人久久综合热线大杳蕉下载| 精品无码久久久久久国产| 亚洲国产精品无码久久久久久曰| 亚洲日本va午夜中文字幕久久 | 色播久久人人爽人人爽人人片AV| 亚洲天堂久久久| 欧美大香线蕉线伊人久久| 国产精品一久久香蕉产线看| 青青青青久久精品国产| 欧美激情精品久久久久久| 久久综合久久自在自线精品自 | 久久亚洲国产成人影院网站| 久久久久久久97| 久久91综合国产91久久精品| 久久亚洲色一区二区三区| 国内高清久久久久久| 狠狠久久综合伊人不卡| 精品国产乱码久久久久久人妻| 精品亚洲综合久久中文字幕| 色欲综合久久躁天天躁| 欧美噜噜久久久XXX| 亚洲国产视频久久| 国产AV影片久久久久久| 日韩乱码人妻无码中文字幕久久| 久久人人爽人人爽人人片AV麻豆 | 91精品观看91久久久久久|