プロジェクト情報
| 事例公開 | 2018 年 7 月 13 日 |
|---|---|
| ソリューション | LightningChart XY チャート機能 折れ線グラフ |
C# で実現する温度線図
東北大学 (中国) 学生である Pengkun Zhao 氏は、C# で電気炉温度制御ソフトウェアをデザインしていました。
Zhao 氏は、プロのプログラマーではありませんでしたが、C# によるプログラミングに対して非常に興味を持っており、オープン ソースのソリューションを利用することを決断しました。
このプロジェクトで必要となったのは、温度データをリアルタイムに描画できるチャート コントロールでした。異なるフォーラムで勧められたさまざまなコントロールを試しましたが、期待通りの結果を得ることができませんでした。完璧なチャート コントロールを探し続けた結果、最終的に LightningChart .NET に出会いました。
LightningChart .NET による温度線図の作成過程
最初に、チャートの最終レンダリング状態をお見せします。これを参考に、プロジェクトへの適用性の可否をご判断ください。
LightningChart .NET の 1 つの強みは、チャートにズームインまたはズームアウトすることで、データの詳細を観察できることです。
LightningChart .NET の非常にパワフルな機能と素晴らしい性能により、理想的なチャートを生成できました。
チャート生成コード
チャート生成に使用したコードは以下になります。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// 参照セットを追加
using Arction.WinForms.Charting;
using Arction.WinForms.Charting.SeriesXY;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 線系列の描画メソッド
private void PaintLine()
{
DataBaseOpe ope = new DataBaseOpe();
// プロパティを無効にして、カラーの速度を向上
lightningChartUltimate1.Dock = DockStyle.Fill;
// 線系列を追加
PointLineSeries pls = new PointLineSeries(lightningChartUltimate1.ViewXY, lightningChartUltimate1.ViewXY.XAxes[0], lightningChartUltimate1.ViewXY.YAxes[0]);
// 表示点
pls.PointsVisible = false;
SeriesPoint[] aPoints = new SeriesPoint[1000];
for (int iPoint = 0; iPoint < ope.GetXmax() + 1; iPoint++)
{
aPoints[iPoint].X = (double)iPoint;
aPoints[iPoint].Y = ope.GetYvalue(iPoint);
}
// 線系列へデータを割り当て
pls.Points = aPoints;
lightningChartUltimate1.ViewXY.PointLineSeries.Add(pls);
// グラフの描画を許可
lightningChartUltimate1.EndUpdate();
}
private void buttonGO_Click(object sender, EventArgs e)
{
DataBaseOpe ope = new DataBaseOpe();
PIDdeal pid = new PIDdeal();
// LightningChart を初期化
lightningChartUltimate1.ViewXY.PointLineSeries.Clear();
// データを初期化
ope.ClearDataBase();
//PID 変数を初期化
pid.PIDinit();
pid.SetValue = double.Parse(textBoxSetValue.Text);
double p = double.Parse(textBoxKp.Text);
double i = double.Parse(textBoxKi.Text);
double d = double.Parse(textBoxKd.Text);
for(int j = 0; j < 1000; j++)
{
ope.AddData(j, pid.PIDcontrol(pid.SetValue, p, i, d));
}
PaintLine();
}
}
}
LightningChart .NET は驚くほど便利な機能を備えており、高度で高速な 2D (XY) および 3D チャートの生成は 5 つ星の機能です。Zhao 氏が使用した上記の簡単な機能に加え、LightningChart .NET は、以下のように多くのパワフルな機能を備えています。
LightningChart .NET は、開発者によるさまざまなデータ視覚化のタスクの実装を助けるため、おおよそ 200 におよぶチャート サンプルを備えています。しかし、Zhao 氏は、これほど高精度な .NET コンポーネントに関する情報を探すことは簡単ではなかったと語ります。
大学生として、膨大な時間を掛けて学校のプロジェクト用のソリューションを探しますが、幸運にも LightningChart .NET に出会うことができました。さらに多くのプロの開発者がこのコンポーネントを使用し、私と同じ立場である学生向けにコーディング エクスペリエンスの共有が普及していくことを期待しています。