亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Qt中基于QCustomPlot實(shí)現(xiàn)曲線繪制和顯示的研究

        2019-11-19 12:13:38徐瑤
        科技視界 2019年25期

        徐瑤

        【摘 要】為了更加直觀有效的繪制和顯示雷達(dá)產(chǎn)生的大量數(shù)據(jù),本文提出了一種Qt平臺(tái)下基于QCustomPlot實(shí)現(xiàn)曲線繪制和顯示的方法,該方法可以簡(jiǎn)單方便的定制曲線窗和曲線的外觀,有效簡(jiǎn)化了曲線繪制的流程,降低了開(kāi)發(fā)過(guò)程中功能實(shí)現(xiàn)的難度。通過(guò)在某型雷達(dá)顯控軟件中使用該方法繪制和顯示雷達(dá)校正樣本數(shù)據(jù),驗(yàn)證了該方法的有效性。

        【關(guān)鍵詞】QCustomPlot;Qt平臺(tái);校正樣本數(shù)據(jù)

        中圖分類號(hào): TP368.1文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 2095-2457(2019)25-0054-002

        DOI:10.19694/j.cnki.issn2095-2457.2019.25.025

        0 引言

        隨著雷達(dá)技術(shù)的不斷發(fā)展,最終送至雷達(dá)顯控軟件界面上顯示的信息也越來(lái)越多,以校正樣本數(shù)據(jù)為例,視校正通道的數(shù)量不同,可能需要同時(shí)顯示幾十至上百個(gè)通道的數(shù)據(jù),每個(gè)通道又包含幾十至上百個(gè)采樣點(diǎn)。如此巨大數(shù)量的數(shù)據(jù)如果采用常規(guī)的列表顯示,不但列表數(shù)據(jù)龐大,而且使用起來(lái)效率低下,對(duì)操作人員非常不友好。因此,我們需要使用二維圖表來(lái)直觀形象的顯示這些數(shù)據(jù)[1]。

        雷達(dá)顯控軟件為了繪制曲線信息,采用了多種第三方庫(kù)和插件,較為常用的有TeeChart[2]、qwt[3-4]等,其中TeeChart繪制圖形表現(xiàn)形式豐富,但因其是商業(yè)軟件,會(huì)給部分開(kāi)發(fā)者帶來(lái)較大的經(jīng)濟(jì)負(fù)擔(dān);qwt具有跨平臺(tái)的屬性,代碼開(kāi)源,但表現(xiàn)形式略顯不足,不能滿足細(xì)節(jié)需要精細(xì)顯示的項(xiàng)目需要。

        為實(shí)現(xiàn)復(fù)雜曲線繪制和顯示,本文提出一種在Qt中基于QCustomPlot來(lái)實(shí)現(xiàn)的方法。使用該方法可以同時(shí)顯示多個(gè)曲線窗,改善了之前使用傳統(tǒng)方法處理只能顯示一個(gè)曲線窗的狀況。并在每個(gè)曲線窗中繪制多條二維曲線,方便進(jìn)行多條曲線之間的比較。操作人員還可以隨意獲取每條曲線的信息,有利于快速定位問(wèn)題。該方法容易上手、使用簡(jiǎn)便,并且可以跨平臺(tái)使用,不但可以解決前文中提到的問(wèn)題,還可以給軟件操作人員提供更好的數(shù)據(jù)顯示效果。

        1 相關(guān)技術(shù)

        QCustomPlot是在Qt框架下實(shí)現(xiàn)的基于LGPL版權(quán)協(xié)議的開(kāi)源項(xiàng)目,它無(wú)需進(jìn)一步的庫(kù)依賴,文檔豐富且使用方便,主要完成二維曲線的繪圖和數(shù)據(jù)可視化,如曲線圖、趨勢(shì)圖、坐標(biāo)圖、柱狀圖等。

        (1)將幫助文檔qcustomplot.qch復(fù)制到Qt目錄下,打開(kāi)Qt,工具->選項(xiàng)->幫助->添加,選擇qcustomplot.qch,安裝幫助文檔。

        (2)將qcustomplot.h文件和qcustomplot.cpp文件復(fù)制到工程文件里,并在項(xiàng)目里添加這兩個(gè)文件。

        (3)在.pro文件中加入語(yǔ)句 QT+=printsupport。

        此時(shí)就可以將項(xiàng)目中的QWidget控件提升為QCustomPlot控件使用了。

        2 復(fù)雜曲線繪制及顯示的實(shí)現(xiàn)

        2.1 曲線窗模塊數(shù)據(jù)處理流程

        仍以雷達(dá)顯控軟件中顯示校正樣本數(shù)據(jù)的曲線窗為例,基于QCustomPlot的曲線窗顯示和繪制模塊主要包括四個(gè)部分,即數(shù)據(jù)接收模塊、數(shù)據(jù)管理模塊、人機(jī)交互模塊和顯示繪制模塊.數(shù)據(jù)接收模塊接收經(jīng)由網(wǎng)絡(luò)發(fā)來(lái)的校正樣本數(shù)據(jù),數(shù)據(jù)管理模塊負(fù)責(zé)對(duì)校正樣本數(shù)據(jù)的解析、保存及管理,人機(jī)交互模塊負(fù)責(zé)實(shí)現(xiàn)曲線窗的人機(jī)交互功能,顯示繪制模塊負(fù)責(zé)使用QCustomPlot控件來(lái)繪制校正樣本數(shù)據(jù),并將其顯示出來(lái)。

        2.2 曲線窗主窗體設(shè)計(jì)

        曲線窗主窗體包含多個(gè)子窗體,均為由QWidget控件提升而成QCustomPlot控件,分別用來(lái)顯示校正前和校正后的樣本數(shù)據(jù),每個(gè)子窗體中同時(shí)顯示所有通道的樣本數(shù)據(jù),每個(gè)通道顯示為一條二維曲線。

        2.3 子窗體數(shù)據(jù)管理設(shè)計(jì)

        在每個(gè)子窗體中需要繪制多條二維曲線,每條對(duì)應(yīng)一個(gè)通道的樣本數(shù)據(jù)。對(duì)于由數(shù)據(jù)接收模塊接收到的校正樣本數(shù)據(jù),程序首先識(shí)別不同的校正樣本數(shù)據(jù)類型,根據(jù)校正樣本數(shù)據(jù)類型判斷出通道數(shù)和每個(gè)通道的樣本數(shù)。由于數(shù)據(jù)包中的校正樣本數(shù)據(jù)是一維線性排列的,需要根據(jù)通道數(shù)和樣本數(shù)解析出每條二維曲線的數(shù)據(jù),送給顯示繪制模塊的同時(shí)還作為二維數(shù)組保存至本地。

        2.4 子窗體的繪制顯示設(shè)計(jì)

        2.4.1 設(shè)置子窗體和曲線顯示的外觀

        設(shè)置子窗體外觀的代碼如下:

        QCustomPlot * m_CurvePlot;

        m_CurvePlot->plot->xAxis->setBasePen(QPen(QColo(239,239,239)));//設(shè)置橫軸的顏色

        m_CurvePlot->plot->xAxis->setTickPen(QPen(QColor(239,239,239)));//設(shè)置橫軸主刻度的顏色

        m_CurvePlot->plot->xAxis->setTickLabelFont(QFont("宋體",9));//設(shè)置橫軸刻度標(biāo)記的字體

        m_CurvePlot->plot->xAxis->setTickLabelColor(QColor(239,239,239));//設(shè)置橫軸刻度標(biāo)記的顏色

        m_CurvePlot->plot->yAxis->setBasePen(QPen(QColor(239,239,239)));//設(shè)置縱軸的顏色

        m_CurvePlot->plot->yAxis->setTickPen(QPen(QColor(239,239,239)));//設(shè)置縱軸主刻度的顏色

        m_CurvePlot->plot->yAxis->setTickLabelFont(QFont("宋體",9));//設(shè)置縱軸刻度標(biāo)記的字體

        m_CurvePlot->plot->yAxis->setTickLabelColor(QColor(239,239,239));//設(shè)置縱軸刻度標(biāo)記的顏色

        m_CurvePlot->plot->setBackground(QBrush(Qt::NoBrush));//設(shè)置窗體背景的畫(huà)刷

        設(shè)置子窗體中曲線的顯示樣式的代碼如下:

        m_CurvePlot->plot->legend->setVisible(false);//設(shè)置圖例說(shuō)明是否可見(jiàn)

        m_CurvePlot->plot->graphs[i]->setLineStyle(QCPGraph::IsLine);//設(shè)置線條的樣式

        m_CurvePlot->plot->graphs[i]->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle,6));//設(shè)置點(diǎn)的樣式

        2.4.2 數(shù)據(jù)更新

        首先調(diào)用函數(shù)setData(const QVector&key, const QVector&value)更新曲線數(shù)據(jù),再調(diào)用函數(shù)replot()重繪當(dāng)前子窗體中顯示的曲線。

        2.4.3 數(shù)據(jù)刪除

        調(diào)用函數(shù)removeGraph(graphs[i])刪除給定序號(hào)的曲線,再調(diào)用函數(shù)replot()重繪刪除某些曲線后子窗體的顯示。

        2.5 子窗體的人機(jī)交互設(shè)計(jì)

        由于校正樣本數(shù)據(jù)通道數(shù)較多,所以本例中設(shè)置不顯示圖例,并使用setColor函數(shù)給每條曲線設(shè)置不同的顏色。但受到顯示器顯示效果和人眼對(duì)不同顏色識(shí)別能力的制約,當(dāng)二維曲線數(shù)量達(dá)到幾十條甚至上百條的時(shí)候,操作人員很難通過(guò)顏色或圖例來(lái)區(qū)分不同通道的曲線,故程序中加入選中某條曲線的功能,利用Qt中的信號(hào)與槽機(jī)制,當(dāng)操作人員使用鼠標(biāo)選中某條曲線的時(shí)候會(huì)自動(dòng)釋放selectionChangedByUser()信號(hào),將其與槽函數(shù)關(guān)聯(lián),在槽函數(shù)中判斷graphs[i]->selected()為真時(shí)的i值,并將其更新到界面上,提示當(dāng)前選中的曲線序號(hào)。

        3 應(yīng)用實(shí)例

        在某型雷達(dá)項(xiàng)目顯控軟件開(kāi)發(fā)中采用Qt5.7.0進(jìn)行校正樣本數(shù)據(jù)繪制和顯示,顯示效果如圖4所示。通過(guò)實(shí)際應(yīng)用,證明該曲線窗可以很好的滿足項(xiàng)目的實(shí)際需求,并且在開(kāi)發(fā)新項(xiàng)目和在不同的平臺(tái)上移植時(shí)都簡(jiǎn)便快捷。

        【參考文獻(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.

        一二三四在线视频社区3| 日本免费精品一区二区| 国产极品少妇一区二区| 国产精品日韩av一区二区三区| 看久久久久久a级毛片| 亚洲欧美日韩人成在线播放| 国产精品高清视亚洲乱码有限公司 | 国产精品玖玖玖在线资源| 在线观看日韩精品视频网站| 91九色人妻精品一区二区三区 | 亚洲一区二区在线观看av| 台湾佬中文网站| 亚洲粉嫩高潮的18p| 深夜福利国产| 国产在线精品成人一区二区三区| 亚洲性久久久影院| 亚洲乱妇老熟女爽到高潮的片| 40分钟永久免费又黄又粗| 中文字幕一二三四五六七区| 久久久精品一区aaa片| 亚洲福利视频一区| 精品蜜桃视频在线观看| 男女av一区二区三区| 亚洲产国偷v产偷v自拍色戒| 老熟女熟妇嗷嗷叫91| 人妻人妇av一区二区三区四区| 亚洲人成网网址在线看| 无限看片在线版免费视频大全| 国产目拍亚洲精品区一区| 日韩极品视频免费观看| 毛片亚洲av无码精品国产午夜| 伊人久久亚洲综合影院首页| 国产久久久自拍视频在线观看| 在线观看av片永久免费| 亚洲 欧美 激情 小说 另类| 亚洲精品天堂在线观看| 国产av一区二区三区在线播放| 曰韩无码二三区中文字幕| 久久青草国产精品一区| 精品熟女视频一区二区三区国产| 亚洲精品成人片在线观看精品字幕|