若該文為原創(chuàng)文章,轉(zhuǎn)載請注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136131310
紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中…
Qt開發(fā)專欄:實(shí)用技巧
需求
??使用QCustomPlot繪制多個(gè)目標(biāo)的北斗運(yùn)行軌跡圖,包括累計(jì)絕對(duì)位置圖和記錄時(shí)刻的相對(duì)位置圖。
??當(dāng)前繪制存在問題:??
??交付客戶前,公司內(nèi)部自測流程發(fā)現(xiàn)的問題。
??實(shí)際預(yù)期效果為:
??
原因
??QCustomPlot加入數(shù)據(jù)是按照x軸排列,也可以按照y軸排列,使用圖層就只能這樣。
嘗試一:使用QCPGraph排序
??
??
??
??確認(rèn)不支持曲線圖:
??
嘗試二:查看官方曲線Demo源碼
??查看官方配套的曲線Demo(注意:全部搜索了”spline“都沒有,這是想看下支持三次插值繪制曲線的額外功能,但是搜索可能某些版本有):
??
??
??QCustomPlot要按照輸入點(diǎn)順序連線,那么就需要直接使用曲線QCPCurve(曲線類)進(jìn)行操作,而不是使用QCPGraph類(addGraph產(chǎn)出)
??測試數(shù)據(jù)如下:
void LongitudeLatiudeTrackDiagramWidget::test()
{
QVector<double> keys;
QVector<double> values;
keys << 1.0 << 2.0 << 3.0 << 2.0 << 1.0;
values << 1.0 << 2.0 << 3.0 << 4.0 << 5.0;
// 步驟一:創(chuàng)建曲線
QCPCurve *pCPCurve = new QCPCurve(_pLongitudeLatiudeTrackDiagramCustomPlot->xAxis, _pLongitudeLatiudeTrackDiagramCustomPlot->yAxis);
// 步驟二:曲線數(shù)據(jù)
pCPCurve->addData(keys, values);
_pLongitudeLatiudeTrackDiagramCustomPlot->replot();
}
??測試效果如下:
??
解決方法
??1.重新定制控件,每一個(gè)目標(biāo)由QCPGraph改為QCPCurve
??2.同步修改操作修改清空、添加、屬性設(shè)置、緩存等操作函數(shù)
最終效果
??絕對(duì)位置累計(jì)運(yùn)動(dòng)軌跡圖:
??
??當(dāng)幀數(shù)據(jù)相對(duì)位置圖:
??文章來源:http://www.zghlxwxcb.cn/news/detail-828335.html
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136131310文章來源地址http://www.zghlxwxcb.cn/news/detail-828335.html
到了這里,關(guān)于Qt實(shí)用技巧:QCustomPlot做北斗GPS顯示絕對(duì)位置運(yùn)動(dòng)軌跡和相對(duì)位置運(yùn)動(dòng)軌跡圖的時(shí),使圖按照輸入點(diǎn)順序連曲線的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!