このエントリーをはてなブックマークに追加
2013/11/27

ファイルを3Dグラフにプロットする(線グラフ)

座標値ファイルの内容を、3次元グラフにプロットするサンプルプログラムです。

RINEARN CODE - ファイルを3Dグラフにプロットする(線グラフ)
スクリーンショット
※ ダウンロードしたZIPファイルを展開し、中のVCSSL.jarをダブルクリックして下さい。
※ 各種デスクトップOSで動作しますが、動作には Java が必要です。

概要

このVCSSLプログラムは、座標値が記載されたファイルの内容を、3Dグラフにプロットします。 サンプル的な短いコードなので、改造や流用のベースに適しています。

使用方法

このプログラムは、Webページ上でも、ダウンロードしてでも実行できます。

Webページ上で起動

上の画面の実行ボタンを押すと、実行用のWebページに移動し、プログラムが起動します。

ダウンロードして起動

上の画面のダウンロードボタンを押して ZIP ファイルをダウンロードし、解凍した中にある「 VCSSL.jar 」をダブルクリックすると、プログラムが起動します。 なお、ZIPファイルの解凍は、右クリックして「 すべて展開 」などで行えます。

起動後

起動すると、まず適当な内容の座標値ファイルが書き出されて( sample3d.txt )、続いて3Dグラフが起動し、ファイルの内容がプロットされます。

グラフ画面

プロットする内容を変えるには、コード中の座標値値配列を書き出している部分( for 文の中身 )を適当に書き換えてください。

コード解説

それでは、このプログラムのコード内容について解説していきます。 このプログラムのコードは、プログラミング言語 VCSSL で記述されています。

コード全体

まずは、コード全体を見てみましょう。20行程度のごく短いコードです。

以上です。流れとしては、前半部で座標値ファイルを書き出し、後半部でそれをグラフにプロットしています。

先頭部分

先頭部分を見てみましょう。

先頭の「 encode Shift_JIS; 」では、プログラムの文字コードを明示しています( UTF-8も可 )。必須ではありませんが、書いておくと文字化けするのを防げます。

「 import science.graph.Graph3D; 」の部分は、3次元グラフを扱うためのライブラリ「 science.graph.Graph3D 」を読み込んでいます。

サンプル座標値ファイルの書き出し

続いて、サンプル座標値ファイルの書き出し部分です。

ここで何をやっているかというと、

x0    y0    z0
x1    y1    z1
x2    y2    z2

という形式で、1行につき1つの点の座標(x,y,z)をタブ区切りで書き出しています。 ファイル名は「 sample.txt 」で、実際に書き出された内容を開くと以下のようになります。

0.0    0.0    0.0
1.0    1.0    2.0
2.0    4.0    6.0
3.0    9.0    12.0
4.0    16.0    20.0
5.0    25.0    30.0
6.0    36.0    42.0
7.0    49.0    56.0
8.0    64.0    72.0
9.0    81.0    90.0
10.0    100.0    110.0

このように、関数 y = x*x, z = x+y の座標が、0 <= x <= 10 まで書き出されています。

この形式は、一般的なグラフソフトでサポートされている、よく見る形式です。 VCSSLの標準環境では、3次元グラフのプロット機能に「 リニアングラフ3D 」が採用されていますが、 リニアングラフ3Dでもこの形式をサポートしているため、使用できます。

プロット

最後に、書き出したファイルを3次元グラフにプロットする部分です。

上のほうの行の、newGraph3D関数で、3次元グラフソフトを起動しています。 この関数は、呼ぶ度にグラフソフトを1個起動し、そのグラフソフトに固有のID番号を割り振って返します。

例えば3次元グラフソフトを何個も起動した場合、12番グラフ、22番グラフ、101番グラフ、 …といったように、それぞれに番号が割り振られているわけです。 上では、生成したグラフに割り振られたID番号をint型変数「 graph 」に格納しているわけです。

続いて下のほうの行です。ここでは、setGraph3DFile関数で、先ほど起動した3Dグラフソフトに、ファイル「 "sample3d.txt" 」をプロットさせています。 ここで第一引数に、先ほどグラフ起動時に受け取ったID番号 graph を指定しています。グラフが複数ある場合でも、このようにID番号で操作対象のグラフを区別できるわけです。

コードのライセンス

このVCSSLコードは著作権フリー(パブリックドメイン)で公開しています。 そのままでのご利用はもちろん、言語の種類を問わず、改造や流用などもご自由に行ってください。



スポンサーリンク


このエントリーをはてなブックマークに追加
新着プログラム

台形近似による数値積分
2015年06月25日

長方形近似による数値積分
2014年11月01日

小数(浮動小数点数)から分数へ近似的に変換する
2014年08月10日

ユーザーが入力した数式を2次元グラフにプロットする
2013年11月30日

配列を3次元グラフにプロットする
2013年11月28日

配列を2次元グラフにプロットする
2013年11月28日

ファイルを3次元グラフにプロットする
2013年11月27日

ファイルを2次元グラフにプロットする
2013年11月26日

ウィンドウの生成
2013年08月28日

ボタンが並ぶパネルの配置(ButtonPanel)
2013年08月28日

ボタンの配置
2013年08月28日

2DCGと3DCGの合成
2013年05月04日

凹レンズを通過する波のシミュレーション
2013年03月16日

凸レンズを通過する波のシミュレーション
2013年03月15日

乱雑な密度分布における波のシミュレーション
2013年03月12日

ローレンツアトラクタ(ファイル出力版)
2013年02月28日

波の屈折のシミュレーション
2012年12月05日

力学アルゴリズムによる波のシミュレーション(面上の波)
2012年11月21日

手動で波を発生させるシミュレーション
2012年11月19日

力学アルゴリズムによる波のシミュレーション(線上の波)
2012年11月18日

カラーコードとRGBの相互変換と色表示
2012年11月15日

頂点配列によるモデルの変形アニメーション
2012年11月14日

頂点配列によるモデルの作成(四角形格子メッシュ形式)
2012年11月11日

円周率1万桁の計算(ガウス=ルジャンドル法)
2012年08月22日

2DCG用フレームワークの使用サンプル(アニメーション版)
2012年08月09日
  スポンサー リンク

  おすすめ / 人気のコーナー
フリーソフト
RINEARN では、インストール不要の各種解析ソフトを無償公開しています。Windows 8.1 で動作確認済み !
ピックアップ
【VCSSL実践講座】 3Dグラフ描画ツールを作ろう!
C言語系の簡易プログラミング言語「 VCSSL 」で、色々なものを作っていく連載記事コーナーです。現在は3Dグラフ描画ツールを開発中 !
2013年08月29日
【RINEARN CODE】 凸レンズを通過する波のシミュレーション
凸レンズ形状の高密度媒質を通過する、波のシミュレーションです。まっすぐ入射した波がレンズ通過時に屈折し、焦点へ収束する様子がアニメーションで楽しめます。
2013年03月15日
  新着情報
RSSフィード
RINEARN の新着・更新情報をRSSフィードで配信しています !
新着リスト
台形近似による数値積分

積分の値を数値的に求めます。長方形近似よりも高精度な方法として、台形で近似した微小領域を足しあげる方法を使用します。
2015年06月25日
長方形近似による数値積分

積分の値を数値的に求めます。長方形で近似した微小領域を足しあげる、最も単純な方法を使用します。
2014年11月01日
小数(浮動小数点数)から分数へ近似的に変換する

小数(浮動小数点数)を、適当な誤差の範囲内で、近い分数に変換するプログラムです。
2014年08月10日
ベクターソフトニュース様でリニアングラフ3Dをご紹介頂きました!

オンラインソフトウェア流通サイトVector様の「ベクターソフトニュース」コーナーにて、リニアングラフ3Dを取り上げて頂きました。
2014年07月31日
ユーザーが入力した数式を2次元グラフにプロットする

実行時にユーザーが入力した数式の値を、2次元グラフにプロットするサンプルプログラムです。
2013年11月30日
配列を3次元グラフにプロットする

座標値配列の内容を、3次元グラフにプロットするサンプルプログラムです。
2013年11月28日
配列を2次元グラフにプロットする

座標値配列の内容を、2次元グラフにプロットするサンプルプログラムです。
2013年11月28日
ファイルを3次元グラフにプロットする

座標値ファイルの内容を、3次元グラフにプロットするサンプルプログラムです。
2013年11月27日
ファイルを2次元グラフにプロットする

座標値ファイルの内容を、2次元グラフにプロットするサンプルプログラムです。
2013年11月26日
2013年の不具合修正情報

2013年1月〜12月に実施された不具合修正に関する情報を掲載しています。
2013年11月01日
3Dグラフ描画ツールを作ろう!〜第5回縮尺を自動調整する

VCSSL実践講座、3Dグラフ開発編。第5回では、最大最小値に応じて、縮尺を自動調整する処理を実装します。
2013年09月02日
3Dグラフ描画ツールを作ろう!〜第5回縮尺を自動調整する

VCSSL実践講座、3Dグラフ開発編。第5回では、最大最小値に応じて、縮尺を自動調整する処理を実装します。
2013年09月02日
  Twitter