国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MFC的繪圖軟件設(shè)計(jì)與實(shí)現(xiàn)

2013-12-29 00:00:00黃琛
電腦知識(shí)與技術(shù) 2013年10期

摘要:MFC作為C++封裝技術(shù)的主體代表,繼承了C++在繪圖方面的優(yōu)點(diǎn),可以較好的把抽象的變得直觀,該文主要是介紹一款基于MFC,同時(shí)程序與Windows系統(tǒng)中的信息交互主要是運(yùn)用到圖形設(shè)備接口(GDI)編程技術(shù)的繪圖軟件的設(shè)計(jì)與實(shí)現(xiàn)過程,也為辦公中的小型繪圖提供了解決方案。

關(guān)鍵詞:MFC;繪圖;GDI;軟件設(shè)計(jì);解決方案

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)10-2345-04

1 概述

繪圖軟件可以說是一個(gè)用來作圖的軟件,通常是指計(jì)算機(jī)中的一組用于繪圖和顯示圖片的程序,它的開發(fā)語言和技術(shù)已經(jīng)應(yīng)用很廣泛。繪圖軟件的開發(fā)一般是高級(jí)算法語言,以子程序的方式進(jìn)行實(shí)現(xiàn),其中,它的每個(gè)子程序是獨(dú)立有繪圖功能。簡(jiǎn)而言之,繪圖軟件就是將我們通常所見的所需要的圖像抽象成線條,運(yùn)用高級(jí)算法編程技術(shù)對(duì)這些點(diǎn)和線條進(jìn)行組合,加色,保存,編輯等的軟件。

MFC(Microsoft Foundation Classes),是一個(gè)微軟公司提供的類庫(class libraries),以C++類的形式封裝了Windows的API,并且包含一個(gè)應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。運(yùn)用MFC所包含的控件和類結(jié)合Windows GDI+技術(shù)實(shí)現(xiàn)一個(gè)繪圖軟件,既可以達(dá)到繪圖的功能又能減少軟件開發(fā)人員的工作量,該文接下來就介紹了這樣一款繪圖軟件的設(shè)計(jì)及實(shí)現(xiàn)過程。

2 軟件原理

2.1 GDI+技術(shù)原理

GDI+從Windows系統(tǒng)中開始引入一系列的技術(shù)來實(shí)現(xiàn)常用的功能,這些是基于之前比較老的GDI版本。GDI+加強(qiáng)了可視化的屬性,最主要的就是操作界面和圖像的邊界透明技術(shù),同時(shí)改進(jìn)舊版本的GDi之后,能夠提供多維的矢量圖形和直接實(shí)現(xiàn)了各種格式圖片之間的相互轉(zhuǎn)換,主要的格式包括JPEG,GIF,BMP,JPG等。它還有一大改進(jìn)就是能夠生成多種格式的圖片,當(dāng)然也不僅僅局限于圖片,比如我們常說的動(dòng)畫Flash也可以生成。GDI+最大的特點(diǎn)應(yīng)屬它的高效率和高穩(wěn)定性進(jìn)行圖片的組合和顯示,通過使用ARGB的值來表示顏色,利用雙緩沖技術(shù)和從硬件底層實(shí)現(xiàn)訪問硬件來提高硬件加速來提高繪圖效率和圖像的信息交換的穩(wěn)定性。

2.3 MFC技術(shù)原理

介紹MFC技術(shù)原理之前要先了解幾個(gè)基本概念,Windows編程,API,SDK。Windows編程技術(shù):Windwos編程機(jī)制是Windows應(yīng)用程序是按照“事件→消息→處理”非順序的機(jī)制運(yùn)行,當(dāng)有某個(gè)事件(如單擊鼠標(biāo)、鍵盤輸入和執(zhí)行菜單命令等)發(fā)生時(shí),Windows會(huì)根據(jù)具體的事件產(chǎn)生對(duì)應(yīng)的消息,并發(fā)送到指定應(yīng)用程序的消息隊(duì)列;應(yīng)用程序從消息隊(duì)列中取出消息,并根據(jù)不同的消息進(jìn)行不同的處理。其中的消息是API的重點(diǎn),消息的結(jié)構(gòu)一般為:

上面簡(jiǎn)單的介紹了GDI+編程技術(shù)原理,計(jì)算機(jī)圖形學(xué)原理,MFC技術(shù)原理,這三項(xiàng)技術(shù)是基于MFC框架繪圖軟件的技術(shù)支撐。下面將主要介紹繪圖軟件的設(shè)計(jì)與實(shí)現(xiàn)的過程,包括軟件的主要功能和關(guān)鍵代碼已經(jīng)實(shí)現(xiàn)的步驟。

3 軟件的設(shè)計(jì)

基于MFC的繪圖軟件采用了MFC和Windows下的GDI+編程技術(shù),通過計(jì)算機(jī)圖形學(xué)思想實(shí)現(xiàn)圖片的繪制,主要是以點(diǎn)構(gòu)線,以線構(gòu)圖,同時(shí)加以色彩的渲染,將這些元素最終組合成一個(gè)圖??梢源鎯?chǔ)成規(guī)定的格式,關(guān)閉軟件之后還可以進(jìn)行打開編輯,可以設(shè)置圖形中元素的屬性以及圖片的相關(guān)特性。

3.1 功能設(shè)計(jì)

基于MFC的本繪圖軟件功能分為基本功能和高級(jí)功能?;竟δ苁轻槍?duì)的對(duì)象是一般的軟件使用者,而高級(jí)功能則針對(duì)的對(duì)象是有特性需求的軟件使用者。

1)圖形繪制。運(yùn)用C++編程語言,實(shí)現(xiàn)繪制簡(jiǎn)單的圖形,包括直線、曲線、橢圓、矩形、標(biāo)準(zhǔn)圓等基本圖形。

2)文字??梢暂斎胛淖郑⑶覍?duì)文字的屬性進(jìn)行編輯,文字屬性主要包括字體、字號(hào)、方向等。

3)多重不規(guī)則圖形。通過線段和圖形繪制技術(shù),獲取客戶區(qū)鼠標(biāo)的點(diǎn)擊位置作為不規(guī)則圖形的點(diǎn),然后描繪點(diǎn)間的線,最后形成封閉的多重的不規(guī)則的多邊形。

4)圖形變換。通過編程實(shí)現(xiàn)對(duì)繪圖區(qū)中基本圖元的移動(dòng)、縮放,修改等操作。

5)文件編輯。文件可以保存成任意類型,比如JPG、XML、GIF、FLASH等格式,但是會(huì)對(duì)其中一種或多種可以實(shí)現(xiàn)保存打開后繼續(xù)編輯屬性。

6)模塊編輯。軟件使用者可以根據(jù)自己的需求編寫相應(yīng)的模塊,通過軟件接口進(jìn)行加載,實(shí)現(xiàn)特定功能。

7)圖形色彩處理。根據(jù)客戶需求,增加顏色的種類和色彩深度,可對(duì)圖形進(jìn)行顏色填充,濾鏡處理等高級(jí)功能。

3.3 模塊設(shè)計(jì)

1)圖形繪制模塊。實(shí)現(xiàn)包括直線、圓等基本圖形的繪制以及文本的輸入編輯等功能。

2)工具箱模塊。實(shí)現(xiàn)獲取鼠標(biāo)位置,清空繪圖區(qū),設(shè)置繪圖區(qū),顏色控制等功能。

3)圖形編輯模塊。實(shí)現(xiàn)圖形的縮放、移動(dòng)、變換等功能。

4)圖形保存模塊。實(shí)現(xiàn)圖形的各種格式的保存,主要提供矢量和位圖的格式保存已經(jīng)本軟件可以編輯的ED格式。

5)圖元屬性模塊。控制圖元的顏色屬性,畫筆屬性,設(shè)計(jì)風(fēng)格模式,背景模式等功能。

4 軟件的實(shí)現(xiàn)

5 結(jié)論

本文基于MFC框架下運(yùn)用GDI+編程技術(shù),介紹了主要的Windows系統(tǒng)下C++編程中對(duì)于繪圖的技術(shù),通過這些技術(shù)和STL(模板類庫)實(shí)現(xiàn)對(duì)圖形的繪制和保存及編輯等功能。

利用SkinSharp和Windows自帶的自繪實(shí)現(xiàn)對(duì)界面的優(yōu)化,利用編程技術(shù)實(shí)現(xiàn)了基本的繪圖和對(duì)圖片的各種操作以及高級(jí)的模塊動(dòng)態(tài)加載功能。

綜合以上可以看出,該文力在介紹基于MFC的繪圖軟件的設(shè)計(jì)及實(shí)現(xiàn)的主要過程。目前,該繪圖軟件已經(jīng)擁有良好的用戶界面,實(shí)現(xiàn)了對(duì)基本圖形的繪制已經(jīng)各項(xiàng)基本操作,但對(duì)復(fù)雜圖形的繪制及操作需要用戶自行加載模塊,處理復(fù)雜圖形能力相對(duì)薄弱。后期研究將主要針對(duì)復(fù)雜圖形的繪制已經(jīng)操作進(jìn)行。

參考文獻(xiàn):

[1] 唐勇,彭剛,皮開文.Autodrawer繪圖軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2008(3).

[2] 何宜軍.基于VB與Mathematica的數(shù)學(xué)繪圖軟件設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2007(4).

[3] 曹恒,馮仲科,張茜.CASS 軟件林業(yè)制圖功能模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2012(6).

[4] Zhang Q,Benveniste A.Wavelet network[J].IEEE Trans.On Neural Networks,1992,8(3):889-898.

[5] Zhang J,Walter G G, Lee W N.Wavelet neural network for function learning[J].IEEE Trans.On Signal Processing,1995,43:1485-1497.

[6] Zhang Q.Using wavelet network in nonparametric estimation[J].IEEE Trans.On Neural Networks,1997,8(2):227-236.

毕节市| 鱼台县| 墨竹工卡县| 黄山市| 石狮市| 南漳县| 讷河市| 拜城县| 白城市| 资阳市| 汽车| 衡山县| 叙永县| 澄江县| 天津市| 铅山县| 大邑县| 左云县| 富锦市| 稷山县| 航空| 工布江达县| 翁牛特旗| 拜泉县| 和静县| 武鸣县| 新安县| 和龙市| 昌黎县| 平谷区| 新龙县| 扎赉特旗| 萨迦县| 五台县| 澄城县| 荣成市| 左贡县| 措勤县| 焉耆| 武强县| 资溪县|