數(shù)據(jù)繪圖處理軟件設(shè)計(jì)論文

時(shí)間:2022-08-02 03:25:00

導(dǎo)語(yǔ):數(shù)據(jù)繪圖處理軟件設(shè)計(jì)論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

數(shù)據(jù)繪圖處理軟件設(shè)計(jì)論文

【摘要】介紹了試飛數(shù)據(jù)繪圖程序功能的實(shí)現(xiàn)﹑參數(shù)繪圖﹑跳點(diǎn)剔補(bǔ)的介紹﹑數(shù)據(jù)繪圖圖形輸出等進(jìn)行闡述。

【關(guān)鍵詞】繪圖設(shè)計(jì)﹑視窗﹑跳點(diǎn)剔補(bǔ)﹑映射模式、坐標(biāo)轉(zhuǎn)換、繪圖模式。

1引言

試飛數(shù)據(jù)繪圖是飛行試驗(yàn)數(shù)據(jù)處理的重要組成部分,方便實(shí)用的繪圖程序可以加快試飛數(shù)據(jù)處理、分析的速度,為試飛工程師提供便捷﹑直觀的效果。

一個(gè)好的繪圖程序,涉及多種功能的集成實(shí)現(xiàn)。隨著計(jì)算機(jī)軟件的飛速發(fā)展、繪圖控件也越來(lái)越多,編制繪圖程序也越來(lái)越容易。但考慮到我們所處的特殊行業(yè),用戶需求比較特殊,程序功能比較復(fù)雜,好多控件是不能滿足我們的繪圖要求,為了方便﹑快捷﹑準(zhǔn)確地用圖形描述試飛數(shù)據(jù)處理結(jié)果,并且靈活定制用戶所需的功能,筆者沒(méi)選任何現(xiàn)成的繪圖控件,而是完全用代碼從底層編寫(xiě)。并能對(duì)二進(jìn)制和十進(jìn)制數(shù)據(jù)繪圖。

此程序主要繪制時(shí)間-歷程圖,參數(shù)對(duì)參數(shù)的工程圖沒(méi)作要求。

2軟件主界面描述

程序的初始界面如圖1。此界面在設(shè)計(jì)時(shí)充分考慮實(shí)用性、美觀性等各方面設(shè)計(jì)要點(diǎn)。

界面用“文檔與視圖結(jié)構(gòu)”做成,顯示區(qū)按一定比例分成兩個(gè)區(qū)即顯示區(qū)和控制區(qū),可人為的調(diào)整兩個(gè)區(qū)的顯示比例。

顯示區(qū)是CScrollView(可卷動(dòng)的視窗)類的繼承,一個(gè)View視窗沒(méi)有卷軸,是很糟糕的事,因?yàn)橥ǔocument范圍大而觀景窗范圍小。我們不能老讓Document與View視窗一樣大。一個(gè)具有卷軸的View視窗更具有「觀景窗」的意義。

控制區(qū)是CFormView(表單視窗)類的繼承,表單視窗是一個(gè)可以包含控件的視圖,與對(duì)話框非常相似,通常可以象創(chuàng)建對(duì)話框一樣使用對(duì)話資源向表單視窗中加入控件。使用表單視窗的原因是因?yàn)樗且环N易于使用的視圖,使得程序更加靈活。

使用以上兩個(gè)類雖然方便,但VC僅提供了框架,大量的工作還要自己做(此不是本文的重點(diǎn))。

圖1飛行試驗(yàn)數(shù)據(jù)繪圖處理軟件主界面

3程序流程

程序流程如圖2所示,此圖主要講解了試飛數(shù)據(jù)繪圖程序的軟件流程。

圖2程序操作流程圖

4基本功能

4.1對(duì)參數(shù)最大值和最小值的手動(dòng)設(shè)定與圖形的手動(dòng)縮放:

如果不用手動(dòng)對(duì)參數(shù)的最大值最小值進(jìn)行設(shè)定,程序可自動(dòng)計(jì)算出參數(shù)的最大值、最小值,并在此值間繪制參數(shù)曲線圖;亦可人工設(shè)定,人為設(shè)定參數(shù)最大值和最小值可按比例調(diào)整參數(shù)值大小。如果數(shù)據(jù)所繪曲線太密集不能確定其曲線走向,該程序還可手動(dòng)對(duì)某參數(shù)所繪曲線圖的選定區(qū)進(jìn)行放大和縮小,也可在相應(yīng)的圖上用鼠標(biāo)拖動(dòng)進(jìn)行相應(yīng)的放大和縮小。

此處對(duì)參數(shù)的最大值、最小值的自動(dòng)計(jì)算出是用數(shù)據(jù)值比較算法,將最大值、最小值正確算出并顯出。

4.2跳點(diǎn)的剔補(bǔ)

跳點(diǎn)有時(shí)間跳點(diǎn)和數(shù)據(jù)跳點(diǎn),剔除跳點(diǎn)有手動(dòng)剔除方式和自動(dòng)剔除方式,手動(dòng)剔除準(zhǔn)確率高但速度較慢,適合所有參數(shù)。自動(dòng)剔除速度極快,僅對(duì)極個(gè)別參數(shù)不能很好的剔除,但可滿足數(shù)據(jù)處理要求。考慮到特殊課題的需求,該程序保留了手動(dòng)剔除方式。

數(shù)據(jù)跳點(diǎn)的判斷是相當(dāng)復(fù)雜的,要根據(jù)參數(shù)的特性等判斷,自動(dòng)判斷更是如此,比人工判斷更難。自動(dòng)判斷要根據(jù)此值前后的值的大小和參數(shù)等的特性來(lái)判斷,如判斷錯(cuò)了則此參數(shù)的正確值剔除所繪圖是不正確的。補(bǔ)點(diǎn)也只能最大限度的使其值接近真實(shí)值,補(bǔ)點(diǎn)時(shí)根據(jù)參數(shù)值所繪曲線、參數(shù)等的特性和被剔除跳點(diǎn)的前后值計(jì)算應(yīng)補(bǔ)點(diǎn)的值,如補(bǔ)點(diǎn)值差異過(guò)大那么補(bǔ)的點(diǎn)也就由成跳點(diǎn)了!

對(duì)時(shí)間跳點(diǎn)的判斷相對(duì)就容易得多了,時(shí)在23至0之間;分在59至0之間;秒在59至0之間,再根據(jù)前后時(shí)間判斷,補(bǔ)時(shí)間跳點(diǎn)根據(jù)前后時(shí)間和所選參數(shù)采用的采樣率算出,因此是正確的補(bǔ)時(shí)間跳點(diǎn)。

如果繪圖數(shù)據(jù)的跳點(diǎn)很少(幅值小),則對(duì)所繪圖形效果并無(wú)大礙,可如果繪圖數(shù)據(jù)的跳點(diǎn)很多(幅值大),則可能很大成度的影響到繪圖的效果。程序中進(jìn)行了剔除跳點(diǎn)和最佳補(bǔ)點(diǎn)的處理,并在繪圖界面中設(shè)置了“剔補(bǔ)跳點(diǎn)”“停止剔除”的選擇。當(dāng)選擇了“剔補(bǔ)跳點(diǎn)"后本程序?qū)⒃诶L圖時(shí)自動(dòng)剔除跳點(diǎn),并在同一位置,補(bǔ)上一個(gè)點(diǎn)使繪出的圖不致失真,并將那個(gè)參數(shù)何處何時(shí)出現(xiàn)跳點(diǎn)指示出來(lái),以供參考。

4.3顯示任意曲線坐標(biāo)

當(dāng)圖繪出來(lái)時(shí),可用鼠標(biāo)在所繪曲線上點(diǎn)擊某處,程序就將此坐標(biāo)值顯示出來(lái),這樣可準(zhǔn)確地給出參數(shù)在該點(diǎn)的值。將參數(shù)值按一定的映射模式、坐標(biāo)轉(zhuǎn)換、繪圖模式等在顯示器上畫(huà)出。顯示任意曲線坐標(biāo)可按參數(shù)值在顯示器上顯示反向做程序就可實(shí)現(xiàn)。

4.4參數(shù)繪圖

參數(shù)繪圖分為特定參數(shù)繪圖和全部參數(shù)繪圖,可根據(jù)任意選擇或?qū)⑺袇?shù)繪制出來(lái),使得繪圖自由度有所增大。

在軟件實(shí)現(xiàn)繪圖時(shí),應(yīng)注意映射模式、坐標(biāo)轉(zhuǎn)換、繪圖模式、設(shè)備的相關(guān)性等的應(yīng)用不同直接影響著圖形輸出的效果.

4.5其它功能的實(shí)現(xiàn):

可以默認(rèn)數(shù)據(jù)的相關(guān)信息(如飛機(jī)號(hào)、時(shí)間等),默認(rèn)時(shí)自動(dòng)讀取數(shù)據(jù)中的相關(guān)信息(對(duì)文本文件不適應(yīng)),也可做相應(yīng)調(diào)整,如果時(shí)間做了改動(dòng)繪圖時(shí)僅繪時(shí)間改動(dòng)間的數(shù)據(jù)。

5.實(shí)現(xiàn)要點(diǎn)及難點(diǎn)

本程序操作簡(jiǎn)單,部分功能實(shí)現(xiàn)自由度較大。每頁(yè)可繪十個(gè)參數(shù)(最少一個(gè)參數(shù)),總頁(yè)數(shù)不限.本程序的技術(shù)難點(diǎn)之一是如何使繪出的圖形不失真,這就要求將實(shí)際數(shù)值與輸出設(shè)備象素的位置正確對(duì)應(yīng),在繪圖或打印時(shí)還涉及到設(shè)備的相關(guān)性,映射模式的不同也直接影響著圖形輸出的效果;其次對(duì)跳點(diǎn)的確認(rèn)和剔補(bǔ)也是一個(gè)難點(diǎn),如對(duì)跳點(diǎn)的確認(rèn)不正確或補(bǔ)的點(diǎn)不合理則繪出的圖也是不正確的。

Windows提供了兩種類型的位圖:DDB和DIB.DDB是一種與設(shè)備相關(guān)的位圖,DDB是由為位圖存放數(shù)據(jù)的BITMAP結(jié)構(gòu)定義的.程序僅獲得位圖數(shù)據(jù)的副本,在不同的機(jī)器之間傳輸位圖的意義就不大了.與DDB相比DIB有許多編程方面的優(yōu)勢(shì).它是一種與設(shè)備無(wú)關(guān)性的位圖,它帶自己的顏色信息,所以,調(diào)色板管理就更加容易,DIB還使得在打印時(shí)更加易于控制灰度陰影,運(yùn)行Windows的任何計(jì)算機(jī)都可以處理DIB,顯示時(shí)從存儲(chǔ)BMP的文件中讀出.因此,此程序用的是DIB位圖.

本程序繪制曲線單位是像素,也稱為設(shè)備坐標(biāo).程序中設(shè)置的映射模式為MM_TEXT,也就是說(shuō)一個(gè)單位代表一個(gè)像素.一旦設(shè)置了設(shè)備環(huán)境的映射模式,大多數(shù)CDC成員函數(shù)就可以使用邏輯坐標(biāo)參數(shù).GDI提供了用于在DC上畫(huà)圖的繪圖工具.MFC定義了若干種對(duì)應(yīng)于Windows的繪圖工具的圖形對(duì)象,如CPen、CBrush、CFont等,在本程序中都用到。

6.結(jié)束語(yǔ)

此程序已基本實(shí)現(xiàn)了繪制時(shí)間-歷程圖的功能,經(jīng)對(duì)某型號(hào)飛行數(shù)據(jù)的繪圖驗(yàn)證已達(dá)到技術(shù)要求,顯示與打印都能正確的實(shí)現(xiàn),對(duì)跳點(diǎn)的剔補(bǔ)和指出跳點(diǎn)的位置也能正確的實(shí)現(xiàn),通過(guò)編寫(xiě)此程序后,對(duì)繪圖程序的編制從底層編寫(xiě)到最終實(shí)現(xiàn)有了更深刻的理解,對(duì)數(shù)據(jù)處理和繪圖的要求也有了更深的理解,此程序基本已將各種功能積于一體,并在實(shí)現(xiàn)時(shí)可按客戶需求進(jìn)行選擇性操作,在滿足用戶需求方面自由度較大,程序的實(shí)用性也大,可推廣使用。

參考文獻(xiàn):[1]〔美〕Microsoft公司著Windows核心編程。

[2]〔美〕BeckZaratian著MicrosoftVisualC++6.0程序員指南。

[3]〔美〕Microsoft公司著MicrosoftVisualC++6.0語(yǔ)言參考手冊(cè)。

[4]〔美〕Microsoft公司著MicrosoftVisualC++6.0MFC類庫(kù)參考手冊(cè)。

[5]顧曉明著VC++圖文程序設(shè)計(jì)。

[6]徐士良著C常用算法程序集。