新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于WPF的交互式繪圖系統(tǒng)的開發(fā)

基于WPF的交互式繪圖系統(tǒng)的開發(fā)

作者: 時間:2011-07-20 來源:網(wǎng)絡(luò) 收藏

是指能為用戶提供操作支持,使用戶通過鼠標(biāo)、鍵盤和手寫筆等在圖形終端上輸入數(shù)據(jù)和圖形信息,進行,并對生成的圖形進行修改、編輯等操作,設(shè)計完成后,保存設(shè)計結(jié)果,最終在顯示屏或其他外部設(shè)備上進行圖形輸出的一整套設(shè)計及其應(yīng)用軟件,在CAD、辦公自動化和其他領(lǐng)域得到了非常廣泛的應(yīng)用?,F(xiàn)有軟件繪制復(fù)雜圖形時會占用大量CPU,消耗大量內(nèi)存,從而導(dǎo)致界面失去響應(yīng)。是一個新的編程模型,與傳統(tǒng)GDI/GDI+繪圖模型相比,將CPU和GPU分開來利用,由于GPU的浮點計算能力遠高于CPU,從而保證了大量計算的優(yōu)先性,同時也能最小化CPU 使用率。以DirectX作為核心繪圖函數(shù),DirectX繪圖速度高于GDI/GDI+,能產(chǎn)生更好的視覺效果。對于需要大量浮點運算的圖形圖像來說, WPF是一個很好的選擇。本文介紹了在VS2008環(huán)境下,以WPF為平臺,用C#編寫的一個圖形。
1交互式繪圖的設(shè)計
1.1 系統(tǒng)的功能設(shè)計

WPF的交互式繪圖系統(tǒng)主要由輸入單元、基本繪圖單元、圖元編輯單元、圖元修改單元、屬性設(shè)置單元、輸出單元組成。系統(tǒng)模塊結(jié)構(gòu)圖如圖1所示。

本文引用地址:http://butianyuan.cn/article/150450.htm

本系統(tǒng)實現(xiàn)了以下功能:
(1)基本圖形元素(點、直線、折線、圓形、圓弧、橢圓、矩形、多邊形、B樣條、閉合B樣條)以及文本的動態(tài)繪制與生成功能;
(2)編輯修改功能:對象的拾取、刪除、復(fù)制、鏡像、陣列、移動、旋轉(zhuǎn)、填充、裁剪,平移縮放視圖,測量封閉區(qū)域的面積;
(3)屬性的設(shè)置:包括對圖元的圖層、線型、線寬、顏色;系統(tǒng)的背景色,文字的高度等屬性進行設(shè)置;
(4)圖形數(shù)據(jù)文件的讀取、保存、打印等操作。
1.2 平臺的選擇
目前Windows環(huán)境下的圖形程序接口主要有GDI/GDI+、Direct3D、OpenGL、WPF四種。GDI/GDI+通常是一個靜態(tài)的顯示系統(tǒng),只有有限的動畫支持,此外GDI/GDI+只支持二維圖形。OpenGL是一個開放的三維圖形軟件包,由于它是圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。Direct3D以COM接口形式提供,所以較為復(fù)雜,穩(wěn)定性差。WPF是微軟新一代圖形系統(tǒng),運行在.NET Framework 3.0架構(gòu)下。WPF 的核心是一個與分辨率無關(guān)并且向量的呈現(xiàn)引擎,旨在利用現(xiàn)代圖形硬件的優(yōu)勢來最小化 CPU 使用率。在WPF中,底層的圖形技術(shù)不再是GDI/GDI+,而是DirectX。
WPF在圖形與界面開發(fā)方面,主要有以下幾個優(yōu)勢[1]:
(1)豐富的繪圖模型與文本模型。不同于以往的逐個像素的繪制,在WPF中可以直接處理基本形狀、文本框以及其他UI元素。
(2)獨立的圖形解析。WPF 圖形系統(tǒng)的基本度量單位是與設(shè)備無關(guān)的像素,它等于1英寸的 1/96。不管實際的屏幕分辨率是多少,每個與設(shè)備無關(guān)的像素都會自動縮放,以符合呈現(xiàn)該像素的系統(tǒng)上的每英寸點數(shù) (dpi) 設(shè)置。
2交互式繪圖系統(tǒng)的實現(xiàn)
2.1 系統(tǒng)的功能界面

交互式繪圖系統(tǒng)的界面窗口主要由標(biāo)題欄、菜單欄、工具欄、繪圖區(qū)、工具箱、消息框和狀態(tài)欄組成,如圖2所示。

2.2 系統(tǒng)的功能實現(xiàn)
2.2.1 系統(tǒng)的窗口框架

 WPF包含兩個相互關(guān)聯(lián)的編程接口,通常使用可擴展應(yīng)用程序標(biāo)記語言 (XAML) 標(biāo)記實現(xiàn)應(yīng)用程序的外觀,而使用托管編程語言(代碼隱藏)實現(xiàn)其行為。WPF中的Menu控件、ToolBar控件、StatusBar控件、GroupBox控件、TextBox控件以及Canvas面板[2]分別構(gòu)成了應(yīng)用程序主窗口頂端的菜單欄、工具欄、底端的狀態(tài)欄與客戶區(qū)左邊的工具箱、下方的消息框以及繪圖區(qū)。系統(tǒng)使用鼠標(biāo)和鍵盤輸入來繪制圖形,Canvas 面板是用于創(chuàng)建復(fù)雜繪圖的特別理想的選擇,因為它支持對其子對象的絕對定位??蚣艽翱诘倪壿嫎浜唸D如圖3所示?! ?/p>

2.2.2 圖形的繪制與編輯功能
WPF提供了Shapes庫來顯示矢量圖,WPF中的基本圖形類主要位于System.Windows.Shapes命名空間。Shape類是所有圖形類的基類,它定義了Stroke、StrokeThickness、Fill等通用屬性,用來繪制形狀輪廓的顏色、粗細(xì)以及形狀的內(nèi)部填充。具體的圖形元素類(Line、Path、Polygon、Polyline、Ellipse、Rectangle)都由其派生而來。2D相關(guān)類型的層次結(jié)構(gòu)圖如圖4所示。

矢量控制相關(guān)文章:矢量控制原理

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉