この記事は2020年06月11日に投稿しました。
目次
リンク
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC++/CLIでグラフを描画する方法についてです。
2. C++/CLIでグラフを描画する/a>
C++/CLIでグラフを描画するには、Chartクラスを使用します。
実装例
MainForm.h
#pragma once namespace CLIChart { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::Windows::Forms::DataVisualization::Charting; /// <summary> /// MainForm の概要 /// </summary> public ref class MainForm : public System::Windows::Forms::Form { public: MainForm(void) { InitializeComponent(); // チャートをフォームのクライアントサイズに合わせます。 auto size = this->ClientSize; chart->ClientSize = size; // チャートの各項目を一旦クリアします。 chart->Titles->Clear(); chart->ChartAreas->Clear(); chart->Series->Clear(); // チャートのタイトルを設定します。 auto title = gcnew Title("タイトル"); chart->Titles->Add(title); // チャートのエリアを追加します。 auto area = gcnew ChartArea(); area->AxisX->Title = "X軸"; area->AxisY->Title = "Y軸"; chart->ChartAreas->Add(area); // 折れ線グラフを追加します。 auto random = gcnew Random(); auto seriesLine = gcnew Series(); seriesLine->ChartType = SeriesChartType::Line; seriesLine->LegendText = "凡例:折れ線グラフ"; seriesLine->BorderWidth = 2; seriesLine->MarkerStyle = MarkerStyle::Circle; seriesLine->MarkerSize = 12; for (auto i = 0; i < 10; ++i) { seriesLine->Points->Add(gcnew DataPoint(i, random->Next(0, 210))); } chart->Series->Add(seriesLine); // 棒グラフを追加します。 auto seriesColumn = gcnew Series(); seriesColumn->LegendText = "凡例:棒グラフ"; seriesColumn->ChartType = SeriesChartType::Column; for (auto i = 0; i < 10; ++i) { seriesColumn->Points->Add(gcnew DataPoint(i, random->Next(0, 210))); } chart->Series->Add(seriesColumn); } (以降省略) }; }
main.cpp
#include "MainForm.h" using namespace CLIChart; [STAThreadAttribute] int main() { auto form = gcnew MainForm(); form->ShowDialog(); return 0; }
実行結果
API Reference
Chartクラス
3. おわりに
グラフを表示するアプリがあり、実装を見ながらサンプルを作成してみました。
グラフ表示は難しいイメージでしたが、案外簡単でした。
リンク
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688