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

        ?

        基于 MS.NET的 GDI+在電力系統(tǒng)矢量圖中的應(yīng)用

        2012-02-09 06:13:50胡潤滋胡鵬飛
        關(guān)鍵詞:圖元繪圖繪制

        胡潤滋,胡鵬飛

        (1.重慶市電力公司調(diào)度控制中心,重慶 400014;2.重慶市電力公司檢修分公司,重慶 400039)

        0 引言

        矢量圖形系統(tǒng)是電力系統(tǒng)分析、計(jì)算、設(shè)計(jì)、監(jiān)控、管理等諸多應(yīng)用系統(tǒng)實(shí)現(xiàn)圖形可視化的基礎(chǔ),現(xiàn)有的電力系統(tǒng)矢量圖形系統(tǒng),大多數(shù)是利用傳統(tǒng)的Windows圖形設(shè)備接口技術(shù)GDI構(gòu)建起來的,對各種電氣元件圖元的繪制及圖元的點(diǎn)選、旋轉(zhuǎn)、平移、縮放等操作,需要進(jìn)行圖元坐標(biāo)變換等大量數(shù)值計(jì)算。圖形程序設(shè)計(jì)比較復(fù)雜,開發(fā)工作量大、代碼維護(hù)比較困難[1-4]。而MS.NET框架的類層次結(jié)構(gòu),較好地封裝了新一代的圖形設(shè)備接口技術(shù)GDI+,大大簡化了基于Windows和Web的圖形應(yīng)用系統(tǒng)的開發(fā)難度,利用GDI+技術(shù)進(jìn)行電力系統(tǒng)矢量圖形系統(tǒng)的設(shè)計(jì)開發(fā),避免了傳統(tǒng)技術(shù)的弊端,具有較好的實(shí)際應(yīng)用價(jià)值。

        本文結(jié)合在電力系統(tǒng)繼電保護(hù)綜合計(jì)算及信息管理系統(tǒng)的實(shí)際項(xiàng)目開發(fā)過程中的體會(huì),介紹GDI+核心技術(shù)在電力系統(tǒng)矢量圖形系統(tǒng)開發(fā)中的具體應(yīng)用。實(shí)際應(yīng)用表明,所采用的技術(shù)手段較傳統(tǒng)方法簡便靈活,設(shè)計(jì)簡單、開發(fā)工作量小,效率高,程序代碼更易于維護(hù)、復(fù)用率高,不需要進(jìn)行大量的坐標(biāo)變換數(shù)值計(jì)算,運(yùn)行速度也較快。

        1 基于GDI+技術(shù)圖元繪制及變換

        1.1 GDI+技術(shù)

        GDI+是最新的Windows圖形設(shè)備編程接口技術(shù),是傳統(tǒng)GDI技術(shù)的升級(jí)。GDI是Windows API中的圖形編程接口,是面向過程的圖形處理函數(shù)集合。GDI+完全集成到MS.NET Framework中,用于圖形編程,同時(shí)也是面向?qū)ο蟮?。GDI+技術(shù)的所有功能包含在MS.NET Framework的6個(gè)命名空間中,這6個(gè)空間如圖1所示。

        本文只探討涉及到 System.Drawing,System.Drawing.Drawing2D兩個(gè)命名空間所包含的部分功能在電力系統(tǒng)矢量圖中的應(yīng)用。

        圖1 命名空間結(jié)構(gòu)關(guān)系

        1.2 GDI+技術(shù)較傳統(tǒng)圖形編程技術(shù)的優(yōu)勢

        MS.NET框架類庫中封裝的 GDI+是.NET新型面向?qū)ο笳Z言C#、VB.NET等的圖形設(shè)計(jì)技術(shù),它提供了易于理解的、基于繼承的對象模型。與傳統(tǒng)圖形編程技術(shù)比較,GDI+技術(shù)具有以下優(yōu)點(diǎn):

        (1)GDI+包含的類能夠直接實(shí)現(xiàn)那些用GDI很難編寫的功能,并且GDI+完全集成到MS.NET Framework中,大大提高了圖形應(yīng)用程序的開發(fā)效率。

        (2)GDI+使用面向?qū)ο蟮念悓哟谓Y(jié)構(gòu)。GDI+編程包括創(chuàng)建圖形對象,設(shè)置其屬性和調(diào)用相關(guān)對象的方法,同時(shí)使用方法重載,因此在調(diào)用GDI+對象的方法時(shí),可以選擇帶有最合適參數(shù)集的方法(或重載)。

        (3)在同一操作中既有繪制圖形的輪廓,又填充其內(nèi)部區(qū)域,這兩個(gè)操作沒有本質(zhì)上的聯(lián)系。但GDI+能識(shí)別繪制圖形的輪廓和填充其內(nèi)部區(qū)域之間的區(qū)別,并為這兩個(gè)任務(wù)提供了不同的操作,從而使繪制圖形表面更靈活。

        (4)在使用其他圖形處理系統(tǒng)時(shí),會(huì)得到繪圖表面的設(shè)備信息,然后把這些設(shè)備信息作為一個(gè)參數(shù)傳遞給繪圖函數(shù)。這些設(shè)備上下文信息維護(hù)了許多狀態(tài),例如當(dāng)前的鋼筆、筆刷、點(diǎn)(在繪制線條時(shí)等使用)。GDI+則為開發(fā)人員隱藏了這種復(fù)雜性,提供了一種更為簡便的方法,消除了因?yàn)殚_發(fā)人員沒有設(shè)置所有必要的狀態(tài)(因此會(huì)隨機(jī)“繼承”代碼其他部分中的狀態(tài))而引起的錯(cuò)誤。

        (5)在GDI+中提供了GraphicsPath和Region兩個(gè)重要的類,這兩個(gè)類用來處理更不規(guī)則的形狀,同時(shí)可以把一組形狀組合起來,進(jìn)行更高效的處理,使用GraphicsPath和Region類繪制復(fù)雜的路徑和形狀,但在屏幕上顯示完成的路徑或形狀這一操作,可以在一種方法調(diào)用中完成,從而簡化復(fù)雜圖元的設(shè)計(jì)、繪制。

        1.3 GDI+技術(shù)圖形功能方案設(shè)計(jì)

        圖形操作功能包括圖元的繪制、點(diǎn)選、圖元的縮放、旋轉(zhuǎn)、平移等變換功能、圖元尺寸調(diào)整、打印等。

        電力系統(tǒng)繼電保護(hù)整定計(jì)算及定值管理軟件所涉及的電氣元件包括發(fā)電機(jī)、變壓器(包括雙繞組變壓器、三繞組變壓器、自耦變壓器)、斷路器、母線、線路、接地裝置等?;贛S.NET的GDI+技術(shù)不僅提供了實(shí)現(xiàn)圖元繪制的筆和筆刷的屬性(包括筆的顏色,寬度以及筆刷的顏色),而且還擁有大量的繪制圖形的方法,以及由一系列圖形組合而成的圖元的圖形路徑GraphicPath類。

        系統(tǒng)普通圖元和電氣設(shè)備圖元都可以設(shè)計(jì)由GDI+動(dòng)態(tài)創(chuàng)建繪制,內(nèi)存占用小,運(yùn)行時(shí)可由用戶動(dòng)態(tài)定制其線寬、顏色、線型等,任意調(diào)整其尺寸、任意旋轉(zhuǎn)等,對圖元進(jìn)行縮放等操作時(shí),不存在圖元變形和失真,用戶定制圖元操作簡單,工作量小,是純粹的矢量圖。而現(xiàn)有的電力系統(tǒng)矢量圖形,大多在設(shè)計(jì)時(shí)或運(yùn)行時(shí)通過繪圖工具來定制設(shè)備圖元,以位圖方式存放,在圖元繪制時(shí)載入相應(yīng)的位圖圖元,內(nèi)存占用大,縮放操作時(shí)圖元存在變形和失真,用戶定制圖元操作復(fù)雜、工作量大。

        1.3.1 繪圖區(qū)域,坐標(biāo)系統(tǒng)設(shè)置

        GDI+可以提供三種繪圖表面(即窗體,打印機(jī),圖像),當(dāng)我們利用計(jì)算機(jī)進(jìn)行圖元繪制時(shí),指的是計(jì)算機(jī)顯示屏幕上的一個(gè)窗口,即窗體。窗體由客戶區(qū)域和非客戶區(qū)域組成,客戶區(qū)域就是我們可以在其中繪圖的矩形區(qū)域,繪圖區(qū)域的大小根據(jù)我們的需要,使用以下代碼屬性來設(shè)置修改繪圖區(qū)域的大小。即:

        This.ClientSize= new Size(width,height);width,height為一組整數(shù)值,表示繪圖矩形區(qū)域的寬度和高度。

        GDI+技術(shù)的坐標(biāo)系采用通用坐標(biāo)系,頁坐標(biāo)系,設(shè)備坐標(biāo)系三種。

        通用坐標(biāo)系是我們在應(yīng)用程序中引用的坐標(biāo)系,無論何時(shí)向任一繪圖函數(shù)傳遞坐標(biāo),我們都是在通用坐標(biāo)系下表示這些坐標(biāo),坐標(biāo)用浮點(diǎn)精度表示。頁坐標(biāo)系的配置決定了繪圖操作的單位,度量單位是Pixel,它的原點(diǎn)位于客戶區(qū)域的左上角。設(shè)備坐標(biāo)系基于像素坐標(biāo)——也是相對于客戶區(qū)域的左上角(或頁面可打印區(qū)域的左上角)。

        所以,當(dāng)GDI+向一個(gè)設(shè)備(如顯示器)輸出時(shí),會(huì)發(fā)生兩次坐標(biāo)轉(zhuǎn)換:一次通用變換(world transformation)(通用坐標(biāo)向頁坐標(biāo)的轉(zhuǎn)換),以及一次頁變換(頁坐標(biāo)向設(shè)備坐標(biāo)的變換)。

        應(yīng)用GDI+技術(shù)進(jìn)行圖形編程時(shí),繪圖函數(shù)使用通用坐標(biāo)系,而圖元變換是通過一次通用變換(world transformation)(通用坐標(biāo)向頁坐標(biāo)的轉(zhuǎn)換)的機(jī)制實(shí)現(xiàn)平移、縮放、旋轉(zhuǎn)等功能。

        1.3.2 應(yīng)用GDI+技術(shù)繪制圖元

        電力系統(tǒng)繼電保護(hù)電氣接線圖的各種電氣元件,可以看成是由各種圖形(如圓、直線、弧、曲線等)組合而成,如發(fā)電機(jī)圖元可以認(rèn)為是由一個(gè)圓、一段弧和一條直線(引出線部分)組成,只需要通過調(diào)用GDI+進(jìn)行圖元各組成部分的繪制設(shè)計(jì)。圖元所占用的內(nèi)存和繪圖資源,由MS.NET公共語言運(yùn)行時(shí)CLR中無用內(nèi)存單元垃圾回收器GC自動(dòng)管理,不存在內(nèi)存泄漏問題。

        在繪制由各種基本圖形組合而成的電氣元件時(shí),我們充分應(yīng)用GDI+提供的GraphicPath類,由GraphicPath類生成的對象表示一組子路徑或圖形。每個(gè)圖形是一條連接起來的路徑,由一系列直線段、曲線段和幾何圖形組成。這些線段和幾何圖形用GDI+中的任意標(biāo)準(zhǔn)方式來描述——圓弧、橢圓、矩形等。要?jiǎng)?chuàng)建一個(gè)圖元,只需按正確的順序繪制圖元的各個(gè)組成部分,GraphicPath對象就把圖元計(jì)算為一個(gè)把這些組成輪廓以指定的順序連接起來后所得的輪廓。以下是一個(gè)以發(fā)電機(jī)圖元為例,應(yīng)用GDI+技術(shù),用C#程序語言編寫的發(fā)電機(jī)圖元繪制的程序片段:

        運(yùn)行該繪圖程序后,繪制的發(fā)電機(jī)圖元如圖2所示。

        圖2 發(fā)電機(jī)圖元

        對圖元進(jìn)行平移、旋轉(zhuǎn)、縮放等操作,首先要對操作的圖元進(jìn)行點(diǎn)選,圖元的點(diǎn)選通過GDI+提供的Region類中的IsVisible方法來實(shí)現(xiàn),即判斷當(dāng)前鼠標(biāo)點(diǎn)擊的坐標(biāo)是否包含在所選擇的、經(jīng)過圖形變換處理后的圖元路徑的內(nèi)部區(qū)域中。如果圖元路徑區(qū)域含有該點(diǎn)的坐標(biāo),則表明圖元是所要選取的圖元,同時(shí)以選取框表示選中的圖元。圖3是圖2所示的發(fā)電機(jī)圖元,通過點(diǎn)選操作后旋轉(zhuǎn)90度的圖元。

        圖3 旋轉(zhuǎn)后的發(fā)電機(jī)圖元

        1.3.3 圖元變換

        矢量圖形系統(tǒng)中對各種圖元的點(diǎn)選、平移、旋轉(zhuǎn)、縮放等操作,傳統(tǒng)技術(shù)要進(jìn)行大量復(fù)雜繁瑣的坐標(biāo)變換數(shù)值計(jì)算,而利用GDI+技術(shù)提供的圖形變換方法,不需要作任何直接的坐標(biāo)變換運(yùn)算,大大簡化了其運(yùn)算過程,可以得到更簡捷的解決方案。

        應(yīng)用GDI+技術(shù)實(shí)現(xiàn)圖元變換,實(shí)際操作的是一個(gè)Matrix對象,該對象由方法建立,Matrix對象定義了所謂的仿射變換(保持共線性變換,意味著平行線在變換之后總是保持平行)。因此,在執(zhí)行圖元的簡單變換或是復(fù)雜變換,都是仿射變換。在一個(gè)繪圖區(qū)域中應(yīng)用GDI+技術(shù)進(jìn)行圖元變換時(shí),它會(huì)應(yīng)用于后繼的所有繪圖操作,每次執(zhí)行繪圖操作時(shí),GDI+都通過應(yīng)用當(dāng)前的變換來改變繪圖操作的結(jié)果。

        圖元變換時(shí)采用的Matrix表示如下:

        實(shí)現(xiàn)圖元變換功能的各種方法如下:

        (1)ScaleTransform在通用變換中應(yīng)用一次縮放;

        (2)TranslateTransform在通用變換中應(yīng)用一次平移(水平或垂直移動(dòng));

        (3)RotateTtransform按指定的度數(shù)在通用變換中圍繞點(diǎn)(0,0)執(zhí)行一次旋轉(zhuǎn);

        (4)MultiplyTransform在通用變換中追加一次變換Matrix對象。即現(xiàn)有一個(gè)變換,我們使用MultiplyTransform方法,在現(xiàn)有變換中追加指定的變換。

        2 圖元數(shù)據(jù)庫交互設(shè)計(jì)

        圖形是數(shù)據(jù)的一種形象的表現(xiàn)形式,它的特點(diǎn)是形象和直觀。數(shù)據(jù)庫是數(shù)據(jù)存儲(chǔ)、處理和管理的工具。任何一個(gè)系統(tǒng)的建立,其實(shí)質(zhì)都是數(shù)據(jù)庫的數(shù)據(jù)建立。

        圖元數(shù)據(jù)庫交互設(shè)計(jì)的關(guān)鍵是面向設(shè)備的建模方式的實(shí)現(xiàn),就是把設(shè)備圖元對象與數(shù)據(jù)庫記錄一一對應(yīng),在定義一個(gè)設(shè)備圖元對象的同時(shí)自動(dòng)追加一條數(shù)據(jù)庫記錄;同時(shí)設(shè)備圖元的模型參數(shù)集合及其錄入界面根據(jù)數(shù)據(jù)庫記錄的結(jié)構(gòu)自動(dòng)修正。利用設(shè)備對象圖元生成數(shù)據(jù)庫記錄是圖元數(shù)據(jù)庫的基礎(chǔ)。當(dāng)數(shù)據(jù)庫記錄的字段改變時(shí),設(shè)備圖元的模型參數(shù)和錄入界面必須做出相應(yīng)的修正,才能做到圖形數(shù)據(jù)庫的交互。

        圖元數(shù)據(jù)庫通過 MS.NET的最新技術(shù) ADO.NET進(jìn)行訪問。ADO.NET徹底地支持像Web這樣的分布式體系結(jié)構(gòu),并利用XML在分布式組件中傳送數(shù)據(jù)。而且ADO.NET將各種邏輯條件進(jìn)行組合來處理離散的記錄集合,這些集合中包含了任意數(shù)據(jù)類型,即使和數(shù)據(jù)庫失去聯(lián)系,設(shè)備照樣可以工作。當(dāng)斷開時(shí),用戶可以利用結(jié)果集進(jìn)行工作,ADO.NET將所做的變化都隱藏起來,只有當(dāng)需要對本地?cái)?shù)據(jù)所做的修改發(fā)回?cái)?shù)據(jù)庫時(shí),連接才有必要。連接只是暫時(shí)地利用該連接單向地發(fā)送對本地?cái)?shù)據(jù)所做的添加、更新和刪除等操作。

        3 結(jié)束語

        本文結(jié)合在電力系統(tǒng)繼電保護(hù)綜合計(jì)算及信息管理系統(tǒng)項(xiàng)目開發(fā)過程中的體會(huì),介紹了GDI+技術(shù)在基于MS.NET的電力系統(tǒng)矢量圖形系統(tǒng)中的具體應(yīng)用。實(shí)際應(yīng)用表明,所采用的技術(shù)手段較之傳統(tǒng)方法簡便靈活、設(shè)計(jì)簡單、開發(fā)工作量小、效率高,程序代碼更易于維護(hù)、復(fù)用率高,不需要進(jìn)行大量的坐標(biāo)變換數(shù)值計(jì)算,運(yùn)行速度也較快。GDI+在電力系統(tǒng)圖形設(shè)計(jì)應(yīng)用中具有較好的實(shí)用價(jià)值,有廣泛的應(yīng)用前景。

        [1] 劉偉,許珉,楊宛輝.面向?qū)ο蟮碾娏ο到y(tǒng)圖形程序設(shè)計(jì)方法[J].繼電器,2003,(11).

        [2] 吳文傳,張伯明,湯磊,等.支持SCADA/PAS/DTS一體化的圖形系統(tǒng)[J].電力系統(tǒng)自動(dòng)化,2001,(5).

        [3] 劉秀玲,陳超英.配電網(wǎng)地理信息系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)與圖形繪制[J].電力系統(tǒng)自動(dòng)化,2001,(10).

        [4] 陳躍輝,陳金富,段獻(xiàn)忠.圖形化的電力系統(tǒng)規(guī)劃自動(dòng)化研究[J].電力系統(tǒng)自動(dòng)化,2002,(2).

        [5] Eric White.GDI+程序設(shè)計(jì)[M].楊浩,張哲峰,譯.北京:清華大學(xué)出版社,2002.

        [6] Jesse Liberty.C#程序設(shè)計(jì)[M]劉基誠,譯.北京:中國電力出版社,2002.

        [7] 張超,陳允平.圖形程序設(shè)計(jì)在繼電保護(hù)計(jì)算輔助整定計(jì)算軟件開發(fā)中的應(yīng)用[J].繼電器,2002,(2).

        猜你喜歡
        圖元繪圖繪制
        Art on coffee cups
        來自河流的你
        中國三峽(2022年7期)2022-12-02 05:28:02
        “禾下乘涼圖”繪圖人
        一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運(yùn)用
        學(xué)術(shù)出版物插圖的編排要求(一):圖注
        聯(lián)鎖表自動(dòng)生成軟件的設(shè)計(jì)與實(shí)現(xiàn)
        放學(xué)后
        童話世界(2018年17期)2018-07-30 01:52:02
        基于HTML5 Canvas繪圖技術(shù)應(yīng)用
        電子測試(2018年4期)2018-05-09 07:28:32
        基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實(shí)現(xiàn)
        軟件(2016年12期)2016-02-13 05:58:14
        Surfer和ArcView結(jié)合在氣象繪圖中的應(yīng)用
        河北遙感(2015年2期)2015-07-18 11:11:14
        亚洲国产欧美日韩欧美特级| 91国内偷拍一区二区三区| 日产一区一区三区区别| 国内精品亚洲成av人片| 国产成人av在线免播放观看新| 国产无遮挡又黄又爽在线观看| 丰满多毛少妇做爰视频| 热re99久久精品国产66热6| 午夜国产精品一区二区三区| 国产亚洲成人精品久久| 色欲人妻综合aaaaa网| 色翁荡息又大又硬又粗又视频图片| 亚洲国产精品久久久性色av| 国产麻豆一区二区三区在线播放| 国产真实一区二区三区| а√中文在线资源库| 亚洲av电影天堂男人的天堂| 国产精品久久婷婷婷婷| 麻豆av在线免费观看精品| 亚洲人成网站色在线入口口 | 国产美女自慰在线观看| 日本精品网| 国产一区二区av男人| 久久女人精品天堂av影院麻| 无码一区二区三区免费视频| 国产乱人伦av在线a| 国产欧美久久久精品影院| 人妻1024手机看片你懂的| 国产精品亚洲第一区二区三区| 国产精品多p对白交换绿帽| 成人无码h真人在线网站| 精品蜜桃一区二区三区| 精品一级一片内射播放| 国产乱人伦av在线a麻豆| 男女肉粗暴进来120秒动态图| 爱v天堂在线观看| 在线视频一区二区国产| 亚洲av永久无码天堂网| 8ⅹ8x擦拨擦拨成人免费视频| 国产精品色内内在线播放| 丝袜美腿亚洲综合一区|