スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | --/--/-- --:--

グラフ描画

仕事では、実験屋といえども、
時には実験装置の設計や実験結果の考察のために、
数値計算をしたりもします。
(もともとそっちの方が好きだったりするのですが・・・)

C++が好きなので、C++で計算させて、結果をテキスト形式で出力して、
Wave Metrics社の「Igor Pro」というグラフソフトで表示する。
ということをやっていたのですが、
いちいち、結果をソフトに持っていくのがめんどくさい!

というわけで、実は、このIgor Proというソフトは、単なるグラフ描画ソフトではなく、
数値解析ソフトで、統計解析から微分・積分・フーリエ変換・行列計算など
かなりいろんな数学的計算が可能なので、内部でプログラミングもできるので、
最近は、このソフトの内部でプログラミングをして計算していました。

ところが、このプログラミング言語が問題で、
いまいち、というかかなり使いにくいのです!

特に、C++に慣れてしまった人間にとっては、
オブジェクト指向に対応してないと、かなりきついです。
それどころか、参照渡しができなかったり、
グローバルな名前の衝突を気にしなければいけなかったり・・・とか、
まあ、数え上げたらきりがないのですが(笑)

う~ん、数値解析機能としては申し分ないんですけど、
もったいない限りです。

というわけで、前置きが長くなりましたが・・・
C++からアクセスできるグラフ描画ライブラリ
欲しいなと思っているわけです。
そうすれば、計算しながらリアルタイムで表示できますからね。

自作するのも面白いなあと思っているのですが、
(実際に以前に、VisualC++のMFCを使って作りかけていた残骸があるのですが)
とりあえず、既存のものでないか探してみたら、NPlotなるものがあるようですね。

で、さっそく、このライブラリをダウンロードして、
参考文献[1]のブログ記事を参考にさせていただきながら、
.NET CLRのWindowsフォームアプリで記述してみたら、
こんな感じにうまくいきました。

NPlotTest01.jpg

とりあえず、これを使うのも一案ですね!

プログラムは、参考文献のものとほとんど同じですが、
MainFormのコンストラクターのところに、
以下の数行を書き込んだだけです。

----------------------------------------------
ArrayList^ data = gcnew ArrayList();

data->Add(1);
data->Add(5);
data->Add(3);
data->Add(-2);
data->Add(0.5);

NPlot::LinePlot^ lp = gcnew NPlot::LinePlot(data);

this->plotSurface2D1->Add(lp);
this->plotSurface2D1->Refresh();
------------------------------------------------------

ちょっとプログラミング熱が上がってるので、
自分用にカスタマイズしたものを自作するのも楽しそうですね。

「プログラミング」というカテゴリを作ったので、
引き続き、進捗状況を報告していきます。


参考文献
[1] ひよっこ女性SEの記録
  「フリーのライブラリNplotを使ってグラフを描く」
  http://ameblo.jp/se-natsu/entry-10151086471.html
スポンサーサイト
C++プログラミング | コメント(2) | 2013/11/26 19:13
コメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
鍵コメさんへ
コメントありがとうございます^^

単に自分用の知識整理のような自己満足なブログですが(笑)、
お読みいただいているのは、すごく励みになります。

例の件も楽しみにしておりますね。
これからもよろしくお願いします^^

管理者のみに表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。