亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GDI+的.NET動(dòng)態(tài)繪圖技術(shù)的研究與應(yīng)用①

        2012-09-27 14:26:12夏克付張承云
        關(guān)鍵詞:圖形圖像窗體繪圖

        夏克付, 張承云

        (1.安徽電子信息職業(yè)技術(shù)學(xué)院,安徽 蚌埠 233030;2.安徽科大訊飛信息科技股份有限公司,安徽 合肥 230088)

        動(dòng)態(tài)繪圖是指使用鍵盤、鼠標(biāo)、手寫板等計(jì)算機(jī)輸入設(shè)備動(dòng)態(tài)繪制圖形或圖像.動(dòng)態(tài)繪圖技術(shù)是圖形圖像處理領(lǐng)域中的一項(xiàng)非常重要的技術(shù).GDI+是圖形設(shè)備接口GDI(graphics device interface)的改進(jìn)版本,提供了二維矢量圖形的顯示、圖像處理和版式處理等功能.在.NET中,GDI+提供了一系列圖形圖像處理相關(guān)的類與接口,使用這些類與接口可以很輕松地實(shí)現(xiàn)動(dòng)態(tài)繪圖功能.但這種動(dòng)態(tài)繪圖技術(shù)在繪圖過程中存在圖形連續(xù)繪制、閃爍和消失等問題,嚴(yán)重影響了圖形繪制的效果與效率.因此,怎樣研究一種基于GDI+的高效的動(dòng)態(tài)繪圖技術(shù),已成為當(dāng)前亟待解決的問題.

        1 動(dòng)態(tài)繪圖技術(shù)存在的問題

        動(dòng)態(tài)繪圖過程一般是在按下鼠標(biāo)后確定所繪圖形的起始點(diǎn),移動(dòng)鼠標(biāo)時(shí)繪制圖形,松開鼠標(biāo)后完成繪圖.因此,在實(shí)現(xiàn)動(dòng)態(tài)繪圖功能時(shí)一般需要使用鼠標(biāo)的按下(MouseDown)、移動(dòng)(MouseMove)和松開(MouseUp)事件.在使用GDI+提供的動(dòng)態(tài)繪圖技術(shù)進(jìn)行動(dòng)態(tài)繪圖的過程中,容易出現(xiàn)以下問題.

        1.1 圖形連續(xù)繪制

        圖1是使用GDI+的動(dòng)態(tài)繪圖技術(shù)在.NET窗體上動(dòng)態(tài)繪制直線的效果.從圖中可以看出,鼠標(biāo)每移動(dòng)一次就會(huì)繪制一條直線,這樣從按下鼠標(biāo)到松開鼠標(biāo)的過程中,繪制的就不是所期望的一條直線,而是“無(wú)數(shù)條”直線.

        要解決這個(gè)問題,可以在MouseMove事件中加上一條圖形清除語(yǔ)句,使得在每次繪制直線時(shí)清除之前所繪制的內(nèi)容.但這樣做又有了新的問題,也就是永遠(yuǎn)只能繪制一條直線.

        圖1 動(dòng)態(tài)繪制直線

        1.2 圖形閃爍現(xiàn)象

        使用GDI+的動(dòng)態(tài)繪圖技術(shù)在動(dòng)態(tài)繪圖時(shí)容易出現(xiàn)閃爍現(xiàn)象,特別是對(duì)圖像進(jìn)行動(dòng)態(tài)處理時(shí),只要移動(dòng)鼠標(biāo),圖像閃爍現(xiàn)象就非常明顯.

        1.3 圖形消失現(xiàn)象

        使用GDI+的動(dòng)態(tài)繪圖技術(shù)所繪制的圖形,被其他程序界面覆蓋恢復(fù)后或程序最小化恢復(fù)后,圖形消失.要解決此問題,可以在窗體或控件的Paint事件中對(duì)消失的圖形進(jìn)行重繪,但這樣做比較麻煩.

        2 動(dòng)態(tài)繪圖技術(shù)的改進(jìn)措施

        要解決動(dòng)態(tài)繪圖過程中所出現(xiàn)的問題,需要引入“圖層”技術(shù).在此引入三個(gè)“圖層”,依次分別是:永久層、臨時(shí)層和顯示層.其中永久層用于永久存儲(chǔ)每次動(dòng)態(tài)繪制完成的圖形,臨時(shí)層用于臨時(shí)存儲(chǔ)鼠標(biāo)一次移動(dòng)時(shí)所繪制的圖形,顯示層用于在窗體或控件中顯示臨時(shí)層中所繪制的圖形.各圖層及其關(guān)系如圖2所示.

        圖2 動(dòng)態(tài)繪圖圖層

        圖2中的箭頭表示在動(dòng)態(tài)繪圖過程中該層內(nèi)容的來(lái)源.永久層表示最終需要繪制的圖形,在開始繪圖之前,該層內(nèi)容要么為空,要么來(lái)源于需要繪制的圖形或圖像,在繪圖過程中,該層內(nèi)容來(lái)源于顯示層;臨時(shí)層表示鼠標(biāo)本次移動(dòng)所繪制的圖形,其內(nèi)容來(lái)源于永久層,其生命周期從移動(dòng)鼠標(biāo)開始到松開鼠標(biāo)結(jié)束;顯示層表示當(dāng)前需要顯示的圖形,其內(nèi)容來(lái)源于臨時(shí)層.

        在.NET中,永久層和臨時(shí)層一般使用GDI+提供的Bitmap對(duì)象來(lái)實(shí)現(xiàn),顯示層一般使用窗體或控件的Image類型的屬性來(lái)實(shí)現(xiàn).在繪圖過程中,臨時(shí)層和顯示層的內(nèi)容在MouseMove事件中完成,永久層的內(nèi)容在MouseUp事件中完成.主要實(shí)現(xiàn)過程如下:

        (1)創(chuàng)建一個(gè)全局的Bitmap對(duì)象(用于實(shí)現(xiàn)永久層),大小與窗體或控件中繪圖區(qū)域大小一致.

        Bitmap bmpForever=new Bitmap(this.Width,this.Height);

        (2)在MouseMove事件中創(chuàng)建一個(gè)上述全局對(duì)象的副本(用于實(shí)現(xiàn)臨時(shí)層).

        Bitmap bmpTemp = (Bitmap)bmpForever.Clone();

        (3)以上述副本為畫布來(lái)動(dòng)態(tài)繪制圖形(如直線).

        Graphics g = Graphics.FromImage(bmp-Temp);

        g.DrawLine(pen,pt,e.Location);

        (4)在窗體或控件中即時(shí)顯示上述副本中所繪制的圖形(用于實(shí)現(xiàn)顯示層).

        this.BackgroundImage=bmpTemp;

        (5)在MouseUp事件中將本次繪制完成的圖形存入上述全局對(duì)象.

        Graphics g=Graphics.FromImage(bmpForever);

        g.DrawImage(this.BackgroundImage,0,0);

        在.NET中使用C#語(yǔ)言按照以上改進(jìn)方法在窗體上動(dòng)態(tài)繪制直線的效果如圖3所示.從圖中可以看出,可以在窗體的任意位置使用鼠標(biāo)繪制直線,解決了之前動(dòng)態(tài)繪圖過程中所出現(xiàn)的問題.

        圖3 動(dòng)態(tài)繪制直線(改進(jìn)后)

        圖4 動(dòng)態(tài)繪圖技術(shù)應(yīng)用

        3 動(dòng)態(tài)繪圖技術(shù)的應(yīng)用

        圖5 數(shù)據(jù)測(cè)量類

        動(dòng)態(tài)繪圖技術(shù)的應(yīng)用非常廣泛,只要有電腦、手機(jī)等電子產(chǎn)品存在的地方,基本上都會(huì)用到動(dòng)態(tài)繪圖技術(shù).例如生活中最常見的手寫輸入法、幻燈片中的動(dòng)態(tài)批注等都使用了動(dòng)態(tài)繪圖技術(shù).在醫(yī)院使用的各種軟件系統(tǒng)中,動(dòng)態(tài)繪圖技術(shù)也隨處可見.下面以動(dòng)態(tài)測(cè)量患者CT圖中的相關(guān)數(shù)據(jù)為例,介紹動(dòng)態(tài)繪圖技術(shù)的應(yīng)用(如圖4所示).

        圖4是對(duì)某位患者腦部CT圖進(jìn)行相關(guān)數(shù)據(jù)測(cè)量.從圖中可知,數(shù)據(jù)測(cè)量功能主要包括動(dòng)態(tài)繪制圖形、根據(jù)CT圖的顯示大小與實(shí)際大小的比例實(shí)時(shí)測(cè)量數(shù)據(jù),以及當(dāng)前所測(cè)量數(shù)據(jù)的解釋說明.主要實(shí)現(xiàn)過程如下:

        (1)設(shè)計(jì)數(shù)據(jù)測(cè)量類

        根據(jù)引入“圖層”后的動(dòng)態(tài)繪圖技術(shù),以及對(duì)CT圖進(jìn)行數(shù)據(jù)測(cè)量的功能需求,設(shè)計(jì)的數(shù)據(jù)測(cè)量類如圖5所示.

        數(shù)據(jù)測(cè)量類(DataMeasurement)中共包括3個(gè)屬性和6個(gè)方法,這些屬性與方法的具體功能描述如表1所示.

        表1 DataMeasurement類的成員功能描述

        (2)創(chuàng)建應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)測(cè)量類

        在Visual Studio 2008中新建一個(gè)Windows應(yīng)用程序,設(shè)計(jì)圖4所示窗體,并實(shí)現(xiàn)數(shù)據(jù)測(cè)量類.而后使用該類實(shí)現(xiàn)圖4所示的數(shù)據(jù)測(cè)量功能.

        4 結(jié)束語(yǔ)

        GDI+提供了強(qiáng)大的圖形圖像處理功能,在.NET中使用GDI+幾乎可以完成所有與圖形圖像相關(guān)的操作.動(dòng)態(tài)繪圖技術(shù)是使用GDI+進(jìn)行動(dòng)態(tài)圖形繪制的技術(shù).通過在多個(gè)項(xiàng)目開發(fā)中的實(shí)踐證明,使用引入“圖層”后的動(dòng)態(tài)繪圖技術(shù),不僅解決了繪圖過程中存在的圖形連續(xù)繪制問題,還解決了使用GDI+進(jìn)行圖形圖像處理時(shí)容易出現(xiàn)的閃爍現(xiàn)象,以及圖形被覆蓋或最小化后消失的現(xiàn)象,大大提高了程序的運(yùn)行效率.

        [1]謝超,陳毓芬.基于GDI+的電子地圖符號(hào)庫(kù)的改進(jìn)[J].測(cè)繪工程,2006,15(2):45 -49.

        [2]閆宇晗,常鑫.在C#中用GDI+實(shí)現(xiàn)圖像動(dòng)態(tài)顯示[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(12):117—118.

        [3]王磊.基于GDI+的圖形圖像處理[J].蘇州市職業(yè)大學(xué)學(xué)報(bào),2008,19(4):7 -9.

        [4]Christian Nagel,Bill Evjen.C#高級(jí)編程(第 6 版)[M].北京:清華大學(xué)出版社,2009.

        [5]唐政,房大偉.C#項(xiàng)目開發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2010.

        猜你喜歡
        圖形圖像窗體繪圖
        來(lái)自河流的你
        “禾下乘涼圖”繪圖人
        Photoshop圖形圖像處理線上線下混合式教學(xué)模式探究
        試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        淺析計(jì)算機(jī)圖形圖像處理技術(shù)偏技術(shù)
        電子制作(2018年8期)2018-06-26 06:43:26
        基于HTML5 Canvas繪圖技術(shù)應(yīng)用
        網(wǎng)頁(yè)設(shè)計(jì)與圖形圖像處理技術(shù)探析
        電子制作(2017年8期)2017-06-05 09:36:15
        面向工藝設(shè)計(jì)的圖形圖像處理系統(tǒng)研究與實(shí)現(xiàn)
        Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
        河北遙感(2015年2期)2015-07-18 11:11:14
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        国产精品美女久久久浪潮av| 亚洲一区二区三区偷拍视频| 日本人妖熟女另类二区| 大地资源在线影视播放| 久久九九国产精品怡红院| 亚洲熟妇乱子伦在线| 亚洲av乱码一区二区三区女同| 久草中文在线这里只有精品| 无码精品国产一区二区三区免费 | 亚洲伊人一本大道中文字幕| 小12箩利洗澡无码视频网站| 国产一起色一起爱| 亚洲gv白嫩小受在线观看| 伊人狠狠色j香婷婷综合| 日韩女优在线一区二区| 亚洲女人毛茸茸粉红大阴户传播 | 麻豆成人久久精品二区三区91 | 免费无码又爽又刺激高潮的视频网站| av亚洲在线一区二区| 精品国产亚洲一区二区三区四区| www夜片内射视频在观看视频| 樱桃视频影视在线观看免费| 亚洲乱码一区二区三区成人小说 | 亚洲24小时在线免费视频网站| 黄色潮片三级三级三级免费| 亚洲 日韩 激情 无码 中出| 久久久精品456亚洲影院| 国产日韩精品一区二区在线观看播放| 青青青视频手机在线观看| 97成人精品在线视频| 免费观看全黄做爰大片| 国产精品亚洲一区二区三区在线| 亚洲国产另类久久久精品小说| 国产黄色看三级三级三级| 亚洲av毛片在线免费观看| 东北老女人高潮大喊舒服死了| 国产真人性做爰久久网站 | 国产在线一区二区三区不卡| 欧美亚洲精品suv| 99久久国产福利自产拍| 国产一区二区a毛片色欲|