需求
使用QCustomPlot繪製多個目標的北斗運行軌跡圖,包括累計絕對位置圖和記錄時刻的相對位置圖。
當前繪製存在問題:
交付客戶前,公司內部自測流程發現的問題。
實際預期效果爲:
QCustomPlot加入數據是按照x軸排列,也可以按照y軸排列,使用圖層就只能這樣。
確認不支持曲線圖:
查看官方配套的曲線Demo(注意:全部搜索了”spline“都沒有,這是想看下支持三次插值繪製曲線的額外功能,但是搜索可能某些版本有):
QCustomPlot要按照輸入點順序連線,那麼就需要直接使用曲線QCPCurve(曲線類)進行操作,而不是使用QCPGraph類(addGraph產出)
測試數據如下:
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;
// 步驟一:創建曲線
QCPCurve *pCPCurve = new QCPCurve(_pLongitudeLatiudeTrackDiagramCustomPlot->xAxis, _pLongitudeLatiudeTrackDiagramCustomPlot->yAxis);
// 步驟二:曲線數據
pCPCurve->addData(keys, values);
_pLongitudeLatiudeTrackDiagramCustomPlot->replot();
}
測試效果如下:
1.重新定製控件,每一個目標由QCPGraph改爲QCPCurve
2.同步修改操作修改清空、添加、屬性設置、緩存等操作函數
絕對位置累計運動軌跡圖:
當幀數據相對位置圖: