» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら
GraphFileAnimator2D - 連番ファイルから2Dグラフをアニメーション描画するツール
このプログラム「 GraphFileAnimator2D 」は、 フォルダ内の連番データファイルを読み込み、2次元グラフを連続で高速描画して、 アニメーションさせるツールです。 グラフを連番の画像ファイルに保存する事もできます。
スポンサーリンク
使用方法
ダウンロードと展開(解凍)
まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。
その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。
» 展開がエラーで止まってしまう場合や、ファイル名が文字化けしてしまう場合は…
プログラムの起動
Windows をご使用の場合
上記でZIPファイルを展開したフォルダ内にある、以下のバッチファイルをダブルクリック実行してください:
もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor__プログラム編集はこちら.bat 」を実行してください。
正常に起動できると、初回のみ、Java実行環境を入手するか等を尋ねられるので、適時答えて済ませると、プログラムが起動します。 2回目以降はすぐに起動します。
Linux 等をご使用の場合
ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)
» javaコマンドが使用できない等のエラーが表示される場合は…
起動後
連番データファイルの読み込み先フォルダの指定
起動すると、まず連番データファイルを読み込むフォルダを指定するかどうか尋ねられます:
もし既に、プロットしたい連番ファイルを格納したフォルダを用意できている場合は、ここで「はい」を選択します。 「いいえ」を選択すると、プログラムと同じ場所にある「 input 」という名前のフォルダが、読み込み先フォルダになります。 この中には最初からサンプルファイルが格納されているため、 とりあえず初回は「いいえ」を選択しましょう。
ファイル名と拡張子の入力
続いて、ファイル名と拡張子を尋ねられるので、それぞれ入力してください:
なお、ファイル名は、連番の番号を除いた部分のみを入力します(下図参照)。
これも、標準ではサンプルコードの内容があらかじめ入力されているため、 とりあえず初回はそのまま「OK」を押して次に進みましょう。
最近の多くのPCでは、拡張子は標準では表示されないように設定されています。 表示するには、「 拡張子 表示 」などのキーワードでWeb検索してみてください。 なお、たまに本当に拡張子の無いファイルも存在します。その場合は拡張子の指定内容を空にして「OK」を押してください。
連番ファイルの番号の検索(自動)
すると、読み込みフォルダ内にある連番ファイルが検索され、開始番号と終了番号が自動で判断されます。
ここでは特に何もする必要はなく、勝手に次に進みます。
画面の起動
いよいよ画面が起動します。合計で3つのウィンドウが立ち上がります。 左がグラフのプロット範囲やアニメーション速度などの入力画面、右上がアニメーション操作画面、 そして右下がグラフ画面です。
※ 画面のデザインや項目名などは、バージョンにより多少異なる場合があります。
アニメーションの再生/停止
アニメーション操作画面の「 PLAY 」ボタンを押すと、 連番ファイルが次々とグラフに描画されて、アニメーションとして再生されます。
アニメーション中は、「 PLAY 」ボタンは表示が変わって「 STOP 」ボタンになり、押すとアニメーションが一時停止します。 アニメーション停止中は、ボタン横のスライダーで、時間を手動で自由に動かす事ができます。
プロットオプションの選択やその他の設定など(任意)
グラフ画面のメニューバーから「 オプション 」をクリックし、プロットオプションを自由に選択できます。 下図のように色々なオプションが選べます(※下図で描画しているデータは、今回のサンプルとは別のものです)。
メニューバーからは、他にも色々な設定を行えます。 設定は、「ファイル」 > 「設定の保存」メニューから保存できます。
このプログラムで起動されるグラフ画面は、 「 リニアングラフ2D( RINEARN Graph 2D ) 」というデータ解析用のグラフソフトで、 単体でも入手・利用できます。操作感などが気に入った方は、ぜひご利用ください。
グラフを連番の画像ファイルに保存
アニメーションの各コマのグラフを、連番の画像ファイルに保存したい場合は、入力画面の「 画像保存 」ボタンを押してください。 標準では「 output 」フォルダ内に保存されます。保存先フォルダを変えたい場合は、「 画像保存 」ボタンの下にある「 選択 」ボタンでフォルダを選択してください。 なお、画像形式はPNGで保存されます。
出力される連番の画像ファイルは、GIMPなどの画像編集ソフトでGIFアニメーションに変換したり、その他ソフトで動画形式のファイルなどに変換する事ができます。 詳細は「 連番画像 動画 」などのキーワードでWeb検索してみてください。
または、このコーナーの以下のページで、連番画像をそのままアニメーションとして再生するツールも公開しています。併せてご利用ください:
連番画像をアニメーション再生する簡易ツール | |
フォルダ内の連番画像ファイルを、動画への変換不要で、そのままアニメーションとして再生できる簡易ツールです。 |
読み込むデータファイルの書式
このツールは、単純にデータファイルを1枚読んではグラフを描いて…を高速にくり返すだけの仕組みなので、 個々のデータファイルの書式は、普通にリニアングラフ2Dで1枚のグラフを描く場合と同じです。 従って書式の詳細は、リニアングラフ2Dの取扱説明書の、以下のページをご参照ください:
また、特にプログラムでデータファイルを作成したい場合などは、VCSSLスタートアップガイドの以下の回も参考になるかもしれません。
以下では、簡単に書式の概要を説明します。
1行の中での数値の区切りは、カンマ記号「 , 」か空白(タブでもOK)で
データファイルには、すぐ後に述べるように、1行に複数の数値を記述する必要があります。 この区切りには、カンマ記号「 , 」と空白(タブでもOK)のどちらかを使用できます。 なお、空白は複数連続させても構いません。
- 例:カンマ記号で区切る場合 -...
- 例:空白で区切る場合 -
...
以下では、Webページ上で見やすいため、空白を区切りに使用します。
単系列のデータ
基本となるのが、単系列のデータのグラフです。 これは要するに、1色で、線プロットなら線1本のグラフの事を指します。
これは本当に単純で、データファイルの1行に1点ずつ座標値、つまりX値とY値を記述していきます。
x2 y2
x3 y3
…
※ x1 などの箇所には、実際には数値を記載してください。
上の例では、1行目に点1の座標値 (x1,y1) が、2行目に点2の座標値 (x2,y2) が、そして3行目に点3の座標値 (x3,y3) が記載されています。
このようなデータファイルを読み込むと、点プロット時には、記載した全ての座標値の位置に点が描画されます。 線プロット時には、各点が線で繋がれます。
複数系列のデータ
続いて複数系列のデータの書式です。 これは、複数の色でデータを色分けしたい場合に使用します。 線プロットを使用している場合は、それぞれ色ごとに別の線が引かれます。
複数プロットのデータ書式も先ほどと基本的には同じで、1行に1点ずつの座標値を書いていきます。 ただし、系列の区切りの箇所に、空白行を挟みます:
x12 y12
…
x1N y1N
(空白行)
x21 y21
x22 y22
…
x2M y2M
上の例では、1行目からN行目までが系列1のデータで、デフォルトでは赤色で描画されます。 そこから空白行を挟んでM行が系列2のデータで、デフォルトでは青色で描画されます。
系列の色については、グラフ上部のメニューバーから「 編集 」 > 「 色の設定 」メニューを選択すると設定できます。
スポンサーリンク
コード解説
コード全体
このプログラムのコードはVCSSLで記述されています。 VCSSLはC言語系のシンプルな文法を持っているので、C系の言語に触れられた事のある方なら、 コメントを参考にしながらコード内容を比較的簡単に追う or 改造する事ができると思います。
今回のコードは、基本的なグラフ描画の処理に、GUIの画面などを組み合わせて、ツールとして仕上げたものです。 グラフの描画処理の基本については以下の回で解説していますので、そちらをご参照ください:
また、VCSSLでのGUI画面の構築については、「 VCSSL GUI開発ガイド 」をご参照ください。
今回のコードは、サンプルコードというよりは実際に使うためのツールなので、 細部を細かくピックアップしながらの解説は割愛し、コード全体の掲載に留めておきます。 今回のコードの全体は、以下の通りです:
コード内容は以上です。
ライセンス
このVCSSL/Vnanoコード( 拡張子が「.vcssl」や「.vnano」のファイル )は実質的な著作権フリー(パブリックドメイン) である CC0 の状態で公開しています※。 記事中にC言語/C++/Java言語などでのサンプルコードが掲載されいてる場合は、それらについても同様です。 そのままでのご利用はもちろん、改造や流用などもご自由に行ってください。
※ ただし、このコードの配布フォルダ内には、ダウンロード後すぐに実行できるように、 VCSSLの実行環境も同梱されており、そのライセンス文書は「 License 」フォルダ内に同梱されています (要約すると、商用・非商用問わず自由に使用できますが、使用の結果に対して開発元は一切の責任を負いません、といった具合の内容です)。 配布フォルダ内の各構成物の一覧やライセンスについては「 ReadMe_使用方法_必ずお読みください.txt 」をご参照ください。
※ Vnano の実行環境については、別途スクリプトエンジンのソースコードも一般公開しており、 何らかのソフトウェア内に組み込んでご利用いただく事も可能です。詳細はこちらをご参照ください。
この記事中の商標などについて
- OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
- Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。この記事は独立著作物であり、Microsoft Corporation と関連のある、もしくはスポンサーを受けるものではありません。
- Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
- その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。
Vnano版 | 積分値のグラフ描画用データを出力するプログラム |
|
|
数値的に積分を行い、結果の関数をグラフに描くためのデータを出力するコードです。 |
3Dグラフを回転アニメーションさせるツール |
|
|
3Dグラフを、Z軸まわりにゆっくりと回転アニメーションさせるツールです。全角度のグラフを、連番の画像ファイルに保存する事もできます。 |
連番ファイルから3Dグラフをアニメーション描画するツール |
|
|
フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。 |
連番ファイルから2Dグラフをアニメーション描画するツール |
|
|
フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。 |
z = f(x,y,t) の形の数式を3Dグラフとしてアニメーション描画するツール |
|
|
入力欄に z = f(x,y,t) の形の数式を入力すると、それを3次元のグラフにアニメーション描画してくれる簡易ツールです。 |
y = f(x,t) の形の数式を2Dグラフとしてアニメーション描画するツール |
|
|
入力欄に y = f(x,t) の形の数式を入力すると、それを2次元のグラフにアニメーション描画してくれる簡易ツールです。 |
t を媒介変数とする x(t), y(t), z(t) の数式を3Dグラフに描画し、アニメーションもできるツール |
|
|
入力欄に x(t), y(t), z(t) の形の数式を入力すると、それを t を媒介変数として3次元のグラフに描画し、アニメーションもできる簡易ツールです。 |
t を媒介変数とする x(t), y(t) の数式を2Dグラフに描画し、アニメーションもできるツール |
|
|
入力欄に x(t), y(t) の形の数式を入力すると、それを t を媒介変数として2次元のグラフに描画し、アニメーションもできる簡易ツールです。 |
z = f(x,y) の形の数式を3Dグラフとして描画するツール |
|
|
入力欄に z = f(x,y) の形の数式を入力すると、それを3次元のグラフに描いてくれる簡易ツールです。 |
y = f(x) の形の数式を2Dグラフとして描画するツール |
|
|
入力欄に y = f(x) の形の数式を入力すると、それを2次元のグラフに描いてくれる簡易ツールです。 |
配列を3Dグラフにアニメーションプロットする(曲面/メッシュグラフ) |
|
|
座標値配列の内容を、3次元の曲面/メッシュグラフに連続でプロットし、アニメーションさせるサンプルプログラムです。 |
配列を3Dグラフにアニメーションプロットする(点/線グラフ) |
|
|
座標値配列の内容を、3次元の点/線グラフに連続でプロットし、アニメーションさせるサンプルプログラムです。 |
配列を2Dグラフにアニメーションプロットする |
|
|
座標値配列の内容を、2次元グラフに連続でプロットし、アニメーションさせるサンプルプログラムです。 |
配列を3Dグラフにプロットする(曲面/メッシュグラフ) |
|
|
座標値配列の内容を、3次元の曲面/メッシュグラフにプロットするサンプルプログラムです。 |
ファイルを3Dグラフにプロットする(曲面/メッシュグラフ) |
|
|
座標値ファイルの内容を、3次元の曲面/メッシュグラフにプロットするサンプルプログラムです。 |
ユーザーが入力した数式を2Dグラフにプロットする |
|
|
実行時にユーザーが入力した数式の値を、2次元グラフにプロットするサンプルプログラムです。 |
配列を3Dグラフにプロットする(点/線グラフ) |
|
|
座標値配列の内容を、3次元の点/線グラフにプロットするサンプルプログラムです。 |
配列を2Dグラフにプロットする |
|
|
座標値配列の内容を、2次元グラフにプロットするサンプルプログラムです。 |
ファイルを3Dグラフにプロットする(点/線グラフ) |
|
|
座標値ファイルの内容を、3次元の点/線グラフにプロットするサンプルプログラムです。 |
ファイルを2Dグラフにプロットする |
|
|
座標値ファイルの内容を、2次元グラフにプロットするサンプルプログラムです。 |