<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于WPF的交互式繪圖系統的開(kāi)發(fā)

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

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

WPF的交互式繪圖系統主要由輸入單元、基本繪圖單元、圖元編輯單元、圖元修改單元、屬性設置單元、輸出單元組成。系統模塊結構圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/150450.htm

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

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

2.2 系統的功能實(shí)現
2.2.1 系統的窗口框架

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

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

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>