QtChart實現曲線圖表繪製之極座標系
阿新 • • 發佈:2018-12-10
簡述
QtChart繪製極座標圖表資料和直角座標沒有太大區別,還是這四個步驟:
- 例項化圖表。直角座標使用QChart,極座標是使用QPolarChart;
- 例項化座標軸。依然是使用QValueAxis類;
- 例項化畫布。可以使用QChartView類或QGraphicsView類;
- 例項化曲線。折線使用QLineSeries類,曲線使用QSplineSeries類
一個簡單的極座標圖表如下所示:
程式碼之路
按上述步驟執行即可,當然還需包含QtChart的使用環境,具體可以參閱上篇繪製直角座標系的文章[https://blog.csdn.net/lusanshui/article/details/84395651
標頭檔案程式碼
private:
QLineSeries *seriesWD; //曲線宣告
QPolarChart *chartWD; //極座標圖表宣告
QValueAxis *angleAxis; //角座標,相對應於直角座標系的X軸
QValueAxis* radiaAxis;//極座標,相對應於直角座標系的Y軸
QChartView* chartViewWD; //畫布宣告
原始檔相應程式碼
//極座標風向圖 //曲線 seriesWD = new QLineSeries(); seriesWD->setName("WD"); //圖表 chartWD = new QPolarChart(); chartWD->addSeries(seriesWD); chartWD->setTheme(QChart::ChartThemeBlueCerulean); //設定圖表theme chartWD->setTitle("Polor WindDirection Chart"); //座標軸 angleAxis = new QValueAxis(); angleAxis->setTickCount(9); // angleAxis->setLabelFormat("%.1f"); angleAxis->setLabelFormat("%d"); angleAxis->setShadesVisible(true); angleAxis->setShadesBrush(QBrush(QColor(249, 249, 255))); chartWD->addAxis(angleAxis, QPolarChart::PolarOrientationAngular); radialAxis = new QValueAxis(); radialAxis->setTickCount(9); radialAxis->setLabelFormat("%d"); chartWD->addAxis(radialAxis, QPolarChart::PolarOrientationRadial); seriesWD->attachAxis(radialAxis); seriesWD->attachAxis(angleAxis); //畫布 chartViewWD = new QChartView(); chartViewWD->setChart(chartWD); chartViewWD->setRenderHint(QPainter::Antialiasing); //加入佈局 mainLayout = new QHBoxLayout(); setLayout(mainLayout); mainLayout->addWidget(chartViewWD);
過程非常清楚,當然,還需要設定座標軸的範圍、給繪製的曲線符點值。
//賦值
for (int i = 0; i <= 360; i+=30)
{
seriesWD->append(i, (i / 200.0)*200.0);
}
radialAxis->setRange(0, 200);
angleAxis->setRange(0, 360);
3 結束語
按部就班的完成這四個步驟,系統自動繪製出影象還是挺方便。