亚洲免费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在线中文字幕| 人与禽交av在线播放| 色橹橹欧美在线观看视频高清| 国产最新网站| 国产人妖一区二区在线| 亚洲国产av一区二区三区天堂| 欧美猛少妇色xxxxx猛交| 7777精品久久久大香线蕉| 久久久亚洲欧洲日产国码是AV| 亚洲国产人成综合网站| 人人爽人人爽人人片av| 国产精品视频一区国模私拍| 亚洲男同免费视频网站| 日本真人做爰免费视频120秒| 少妇高潮喷水久久久影院| 青青青爽国产在线视频| 精品一区二区三区不老少妇| 国产午夜视频在线观看.| 伊人激情av一区二区三区| 国产精品高清网站| 国产成熟人妻换╳╳╳╳| 久久精品这里只有精品| 国产三级在线观看高清| 91成人自拍国语对白| 中文字幕在线播放| 亚洲欧美日韩国产综合久| 亚洲精品熟女av影院| 麻豆亚洲av熟女国产一区二| 国产精品污www一区二区三区| 韩国无码精品人妻一区二| 久久精品女同亚洲女同| 国产在线 | 中文| 美女裸体无遮挡免费视频的网站| 性色av一区二区三区密臀av| 日日麻批免费40分钟无码|