Visual C++プログラムからGnuplot(1) の変更点


 Windows上でVisual C++のプログラムから直接グラフを描けると便利です. Gnuplotを使った方法を紹介します.
 
 #contents
 
 
 * Visual C++でのプログラミング方法 [#na749325]
 
 Visual C++での簡単なプログラミング方法を説明しておきます. Visual C++でコンパイルするといろんなファイルができてしまうので,最初に適当なフォルダをつくっておきます.
 
 #ref(fig1.png,nolink)
 
 ここに新規テキストファイルをつくり,拡張子を .c とします(拡張子を変更しようとすると変なダイアログが表示されますが,構わず「OK」を押します).
 
 #ref(fig2.png,nolink)
 
 普通にVisual C++をインストールしておけば, .c のファイルが関連付けされていてダブルクリックすればVisual C++が立ち上がるようになっています.関連付けが違う場合は,右クリックして「プログラムから開く」でVisual C++を選ぶか,先にVisual C++を立ち上げておいてファイルをドラッグandドロップします.
 
 Visual C++でファイルを開いたら何か適当なプログラムを書きます.
 
 #ref(fig3.png,nolink)
 
 これを実行するにはコンパイル,ビルド,実行という手順で行うのですが,すべてVisual C++上からできるようになっているようです.これらの操作は右上の方にあるアイコンで行えます.
 
 #ref(fig4.png,nolink)
 
 コンパイル,ビルド,実行と順々に押していけばプログラムを実行できます.途中何かの確認メッセージが出てきますが,全部「OK」でいいようです. Visual C++はいろいろなことができるようですが,これくらい覚えておけばとりあえずなんとかなります.
 
 
 * gnuplotの起動 [#x309290a]
 
 Visual C++からgnuplotでグラフを表示します.まず,Cのソースファイルと同じフォルダに, gnuplotの命令を書いたテキストファイルをつくります.拡張子は特に決まっていませんが「.plt」とすることが多いです.このファイルにつぎのような命令を書いておきます.以下では1行ですが,何行でも命令を書くことができます.
 
  plot x*sin(x)
 
 これをたとえばsetting.pltという名前で保存しておきます.
 
 そしてCのソースを書きます.Cからgnuplotを呼び出し,このファイルを読み込ませるわけです. gnuplotの呼び出しにはsystem()関数を使います.呼び出す際に,-persistオプションを付けます(付けないとグラフが一瞬しか表示されません).ソースはつぎのようになります.
 
  #include <stdio.h>
  #include <stdlib.h>
  
  int main(void) {
  
    system("wgnuplot -persist setting.plt");
  
    return 0;
  }
 
 これをコンパイル,ビルド,実行すると
 
 #ref(fig5.png,nolink)
 
 というようにgnuplotが起動し,グラフが表示されると思います.うまく行かない場合は環境変数の設定や, Windowsが拡張子を表示するように設定しているかなどを確認してみてください.このプログラムはgnuplotにsetting.pltを引数として与えて呼び出しているだけです.これだけではあまり約に立ちませんが,後でやるように数値計算したデータを一気にプロットしたい場合などは便利です.
 というようにgnuplotが起動し,グラフが表示されると思います.うまく行かない場合は環境変数の設定や, Windowsが拡張子を表示するように設定しているかなどを確認してみてください.このプログラムはgnuplotにsetting.pltを引数として与えて呼び出しているだけです.これだけではあまり役に立ちませんが,後でやるように数値計算したデータを一気にプロットしたい場合などは便利です.
Valid XHTML 1.1! home > コンピュータ > グラフ・解析ツール >
リロード   新規 編集 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.3.29HTML convert time to 0.002 sec.