鐘權(quán)++沈靜波++路偉欣
【摘 要】為了能夠從多個(gè)角度更加直觀地顯示雷達(dá)探測(cè)目標(biāo)的參數(shù)信息。提出一種在Qt平臺(tái)下開(kāi)發(fā)的基于QcustomPlot的曲線繪制和顯示技術(shù)。該技術(shù)可以方便靈活的定制曲線窗和曲線外觀,簡(jiǎn)化了曲線窗的繪制流程,降低了曲線窗繪制顯示技術(shù)的開(kāi)發(fā)難度。在某型雷達(dá)顯控軟件中,使用該技術(shù)對(duì)雷達(dá)的參數(shù)進(jìn)行曲線化顯示。結(jié)果表明,該技術(shù)可以清晰流暢且直觀地顯示雷達(dá)參數(shù)的變化情況。
【關(guān)鍵詞】曲線繪制;QCustomPlot;Qt平臺(tái);雷達(dá)顯示
Display Technique of Curve Plotting based on QCustomPlot and Qt
ZHONA Quan1,2,3 SHEN Jing-bo1,2,3 LU Wei-xin1
(1.No.38 Research Institute, China Electronics Technology Group Corporation,Hefei Anhui 230088,China;
2.Key Laboratory of Aperture Array and Space Detection,Hefei Anhui 230088,China;
3.Key Laboratory of Intelligent Information Processing,Hefei Anhui 230088,China)
【Abstract】In order to display the information detected by radar more intuitionistic in many aspects.A method of curve plotting and display based on QCustomPlot working on the Qt platform was proposed.It can customize the appearance of windows and curves neatly,simplify the process flow of curve plotting, and make the development easier.The method had been used for displaying the information in some kind of radar.It indicated that the technique can display the change of radar parameters clearly and fluently.
【Key words】Curve plotting;QCustomPlot based;Qt Platform;Display of radar
隨著情報(bào)雷達(dá)探測(cè)手段和信號(hào)處理方式的不斷進(jìn)步,呈現(xiàn)給操作人員的信息也在不斷增多。為了展示這些參數(shù)信息,傳統(tǒng)的情報(bào)雷達(dá)給出了包括P顯、B顯、E顯、A顯等多種二維顯示方式。這些顯示方式給雷達(dá)操作人員提供了極大的幫助,例如,A顯信息使他們能夠直觀感受目標(biāo)強(qiáng)度信息在方位上隨距離變化的情況,從而做出更加精準(zhǔn)的判斷和決策。這些信息往往是以二維曲線的方式展現(xiàn)的[1]。雷達(dá)顯示軟件為了繪制曲線信息,也采用了多種第三方庫(kù)和插件來(lái)解決這個(gè)問(wèn)題。在工程實(shí)踐中較為常用的有TeeChart[2]、qwt[3-6]等,其中TeeChart表現(xiàn)形式豐富,但是并不開(kāi)源,對(duì)于開(kāi)發(fā)者而言,開(kāi)發(fā)成本較高;qwt具有跨平臺(tái)的屬性,代碼開(kāi)源,但是在實(shí)際應(yīng)用過(guò)程中,在一些精細(xì)的顯示細(xì)節(jié)上不能滿足項(xiàng)目需要。本文提出一種在Qt平臺(tái)下開(kāi)發(fā)的基于QCustomPlot的多曲線窗繪制及顯示方法,可以在一個(gè)界面同時(shí)顯示多個(gè)曲線窗,改善了傳統(tǒng)情報(bào)雷達(dá)只能顯示一個(gè)曲線窗體的弊端。在接收雷達(dá)探測(cè)和處理過(guò)的目標(biāo)參數(shù)信息后,多曲線窗可以通過(guò)簡(jiǎn)單配置來(lái)改變需要顯示的參數(shù)項(xiàng),通過(guò)簡(jiǎn)單操作來(lái)突出顯示效果。這些參數(shù)信息分布在各個(gè)子窗上,可以同步顯示,方便操作人員從多個(gè)角度直觀的觀察目標(biāo)參數(shù)的變化情況,從而作出更精準(zhǔn)的判斷。該方法配置簡(jiǎn)單、使用方便,并且具有跨平臺(tái)屬性,可以很好的解決上述第三方庫(kù)和控件存在的問(wèn)題,并將這些參數(shù)信息以更好的方式顯示給操作人員。
1 相關(guān)技術(shù)簡(jiǎn)介(QCustomPlot介紹)
QCustomPlot是在Qt框架下實(shí)現(xiàn)的基于LGPL版權(quán)協(xié)議的開(kāi)源項(xiàng)目。主要用來(lái)對(duì)二維曲線的繪制和數(shù)據(jù)的可視化。它不需要進(jìn)一步的庫(kù)依賴,而且文檔豐富,使用方便,便于開(kāi)發(fā)人員快速進(jìn)入開(kāi)發(fā)狀態(tài)。
2 曲線繪制及顯示技術(shù)的實(shí)現(xiàn)
2.1 曲線窗模塊數(shù)據(jù)處理流程
本文主要針對(duì)的是雷達(dá)顯示軟件上的曲線窗顯示模塊,所以在討論過(guò)程中,曲線窗中的數(shù)據(jù)均是與雷達(dá)顯示相關(guān)的航跡參數(shù)信息?;赒CustomPlot的曲線窗顯示和繪制模塊主要包括數(shù)據(jù)接收、數(shù)據(jù)管理、人機(jī)交互和顯示繪制等模塊,其結(jié)構(gòu)組成如圖1所示。數(shù)據(jù)接收模塊從網(wǎng)絡(luò)中接收雷達(dá)的航跡參數(shù)信息;數(shù)據(jù)管理模塊包括對(duì)所有航跡批數(shù)據(jù)的管理、對(duì)當(dāng)前需要顯示航跡批的批號(hào)管理、重點(diǎn)關(guān)注批的批號(hào)管理等;人機(jī)交互模塊負(fù)責(zé)曲線窗模塊的外部操作接口;顯示繪制模塊是指在Qt平臺(tái)下,使用QCustomPlot控件來(lái)繪制由數(shù)據(jù)管理模塊所管理的數(shù)據(jù),并將繪制結(jié)果顯示出來(lái)。
2.2 曲線窗主界面設(shè)計(jì)
曲線窗主界面由多個(gè)子窗體組成,CzCurvesWindowBase類用來(lái)定義子窗體類。曲線窗的具體結(jié)構(gòu)如下:
QList
QList
QList
曲線窗主界面主要負(fù)責(zé)將接收到的航跡參數(shù)數(shù)據(jù)分發(fā)到各個(gè)子窗體結(jié)構(gòu)中。并提供人機(jī)操作接口,將當(dāng)前需要顯示的航跡批號(hào)和需要重點(diǎn)關(guān)注的批號(hào)信息分發(fā)到各個(gè)子窗體中。
2.3 子窗體數(shù)據(jù)管理設(shè)計(jì)
對(duì)于每個(gè)子窗體而言,需要繪制多條不同批號(hào)的曲線,由QList
struct CurveData //曲線數(shù)據(jù)
{
unsigned long id; //批號(hào)
int nAlpha; //亮度
bool bIsAllData; //是否加載所有數(shù)據(jù)
QList
};
QList
QList
QCustomPlot* m_Plot; //曲線顯示圖
其中,變量m_CurveCurrentIds保存了當(dāng)前需要顯示的航跡批號(hào)。變量m_Plot是QCustomPlot類的對(duì)象,通過(guò)該變量,可以直接調(diào)用QCustomPlot的各種繪制方法。
2.4 子曲線窗的繪制和顯示技術(shù)
對(duì)子曲線窗的操作主要通過(guò)QCustomPlot類的對(duì)象來(lái)進(jìn)行。
2.4.1 定義子曲線窗和曲線顯示的外觀
使用QCustomPlot類所派生的對(duì)象來(lái)定義子窗體外觀的代碼如下:
m_Plot->plot->xAxis->setBasePen(QPen(QColor("#f0f0f0")));//設(shè)置x軸的顏色
m_Plot->plot->xAxis->setTickPen(QPen(QColor("#f0f0f0")));//設(shè)置x軸主刻度的顏色
m_Plot->plot->xAxis->setSubTickPen(QPen(QColor("#f0f0f0")));//設(shè)置x軸子刻度的顏色
m_Plot->plot->xAxis->setTickLabelFont(QFont("微軟雅黑", 10));//設(shè)置x軸刻度標(biāo)記的字體
m_Plot->plot->xAxis->setTickLabelColor(QColor(238, 238, 238));//設(shè)置x軸刻度標(biāo)記的顏色
m_Plot->plot->yAxis->setBasePen(QPen(QColor("#f0f0f0")));//設(shè)置y軸的顏色
m_Plot->plot->yAxis->setTickPen(QPen(QColor("#f0f0f0")));//設(shè)置y軸主刻度的顏色
m_Plot->plot->yAxis->setSubTickPen(QPen(QColor("#f0f0f0")));//設(shè)置y軸子刻度的顏色
m_Plot->plot->yAxis->setTickLabelFont(QFont("微軟雅黑", 10));//設(shè)置y軸刻度標(biāo)記的字體
m_Plot->plot->yAxis->setTickLabelColor(QColor(238, 238, 238));//設(shè)置y軸刻度標(biāo)記的顏色
m_Plot->plot->setBackground(QBrush(Qt::NoBrush));//設(shè)置窗體背景的畫刷
使用QCustomPlot類所派生的對(duì)象來(lái)定義子窗體中曲線的顯示樣式的代碼如下:
m_Plot->plot->legend->setVisible(true);//設(shè)置圖例說(shuō)明是否可見(jiàn)
m_Plot->plot->graphs[id]->setScatterStyle((QCPScatterStyle::ScatterShape)uiselctScatterStyle); //設(shè)置點(diǎn)的樣式
m_Plot->plot->graphs[id]->setLineStyle((QCPGraph::LineStyle)uilineStyle);//設(shè)置線條的樣式
QCustomPlot類還給出了其它一些定義子曲線窗和曲線顯示外觀的函數(shù)
2.4.2 數(shù)據(jù)的更新
調(diào)用QCustomPlot::addData(double x, double y)函數(shù)將實(shí)時(shí)的曲線點(diǎn)加入到曲線點(diǎn)集中,調(diào)用QCustomPlot::replot()函數(shù)重繪當(dāng)前子窗體中的顯示。
2.4.3 數(shù)據(jù)的刪除
調(diào)用QCustomPlot::removeGraph(graphs[id])函數(shù)刪除給定批號(hào)的曲線,調(diào)用QCustomPlot::replot()函數(shù)重繪刪除某些曲線后的實(shí)時(shí)顯示。
3 應(yīng)用實(shí)例
(b)
圖2 曲線窗的顯示效果
在某項(xiàng)目中采用Qt4.8.0進(jìn)行曲線窗繪制和顯示的開(kāi)發(fā)設(shè)計(jì),顯示效果如圖2所示。實(shí)際應(yīng)用表明,該曲線窗可以很好的滿足項(xiàng)目的實(shí)際需要,并且能夠方便的移植到新的項(xiàng)目中去,在不同的平臺(tái)上表現(xiàn)一致。
4 結(jié)論
本文提出一種在Qt平臺(tái)下開(kāi)發(fā)的基于QcustomPlot的曲線繪制和顯示技術(shù)。該技術(shù)可以方便靈活地在一個(gè)界面同時(shí)顯示多個(gè)曲線子窗,豐富了雷達(dá)參數(shù)信息的顯示效果,簡(jiǎn)化了曲線窗的繪制流程,降低了曲線窗繪制顯示技術(shù)的開(kāi)發(fā)難度。該技術(shù)已經(jīng)應(yīng)用在多款雷達(dá)顯控軟件中。應(yīng)用結(jié)果表明,該技術(shù)可以清晰流暢且直觀地顯示雷達(dá)參數(shù)的變化情況。
【參考文獻(xiàn)】
[1]丁鷺飛,耿富錄.雷達(dá)原理[M].4版.西安:西安電子科技大學(xué)出版社,2009:4.
[2]陳俊良,葉林,葛俊鋒,等.TeeChart控件在實(shí)時(shí)檢測(cè)系統(tǒng)上位機(jī)軟件中的應(yīng)用[J].2015,28(6):13-15.
[3]高菲,袁媛,林成地,等.Qwt類庫(kù)在二維云圖繪制中的應(yīng)用[J].現(xiàn)代電子技術(shù),2014,37(14):100-102.
[4]XU H,SHAN P,CHEN K,et al.Design and implementation of limestone activity real-time detection system based on Qt/Qwt[C]//ICMMCCE 2015:1444-1448.
[5]許豪,張政,陳可.基于Qwt的實(shí)時(shí)波形繪制的實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2014(23):70.
[6]沈靜波,鐘權(quán),趙艷麗.基于QwtPlot3D的雷達(dá)三維回波顯示技術(shù)[J].空軍預(yù)警學(xué)院學(xué)報(bào),2016,30(2):86-88.
[責(zé)任編輯:田吉捷]