東北大学 (中国) 学生プロジェクト


事例公開 2018 年 7 月 13 日
ソリューション LightningChart XY チャート機能 折れ線グラフ

C# で実現する温度線図

東北大学 (中国) 学生である Pengkun Zhao 氏は、C# で電気炉温度制御ソフトウェアをデザインしていました。Zhao 氏は、プロのプログラマーではありませんでしたが、C# によるプログラミングに対して非常に興味を持っており、オープン ソースのソリューションを利用することを決断しました。

このプロジェクトで必要となったのは、温度データをリアルタイムに描画できるチャート コントロールでした。異なるフォーラムで勧められたさまざまなコントロールを試しましたが、期待通りの結果を得ることができませんでした。完璧なチャート コントロールを探し続けた結果、最終的に LightningChart SDK に出会いました。

LightningChart SDK による温度線図の作成過程

最初に、チャートの最終レンダリング状態をお見せします。これを参考に、プロジェクトへの適用性の可否をご判断ください。

図 1. LightningChart SDK を使用した電気炉温度制御ソフトウェアのチャート

LightningChart SDK の 1 つの強みは、チャートにズームインまたはズームアウトすることで、データの詳細を観察できることです。

図 2. [図 1] のチャートをズームアウトした様子

LightningChart SDK の非常にパワフルな機能と素晴らしい性能により、理想的なチャートを生成できました。
— 東北大学 (中国) 学生 Pengkun Zhao 氏

チャート生成に使用したコードは以下になります。

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 WindowsFormsApplicatiopn5
{
  public partial class Form1:Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    // 線系列の描画メソッド
    private void PaintLine()
    {
      DataBaseOpe ope = new DataBaseOpe();
      // プロパティを無効にして、カラーの速度を向上
      lightningChartUltimate1.Dock = DockStyle.Fill;
      // 線系列を追加
      PointLineSeries pls = new PointLineSeriesss(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 SDK は驚くほど便利な機能を備えており、高度で高速な 2D (XY) および 3D チャートの生成は 5 つ星の機能です。Zhao 氏が使用した上記の簡単な機能に加え、LightningChart SDK は、以下のように多くのパワフルな機能を備えています。

LightningChart SDK は、開発者によるさまざまなデータ視覚化のタスクの実装を助けるため、おおよそ 200 におよぶチャート サンプルを備えています。しかし、Zhao 氏は、これほど高精度な .NET コンポーネントに関する情報を探すことは簡単ではなかったと語ります。

大学生として、膨大な時間を掛けて学校のプロジェクト用のソリューションを探しますが、幸運にも LightningChart SDK に出会うことができました。さらに多くのプロの開発者がこのコンポーネントを使用し、私と同じ立場である学生向けにコーディング エクスペリエンスの共有が普及していくことを期待しています。
— Zhao 氏

ページトップへ