[ 前へ | 目次 | 次へ ]

その他のライブラリ

ここでは、前回扱ったライブラリ以外で、よく用いるライブラリについて扱います。


より幅広い機能を提供する標準ライブラリ

標準ライブラリは、前回扱ったものが全部ではありません。 前回扱ったライブラリは、VCSSL 2.0 の頃から存在し、言語として最低限必要になる基板機能を提供しているものです。

そして VCSSL 3.0 以降では、より幅広い機能を提供するライブラリも順次増えていっています。 それらは、最初は標準ライブラリとは別扱いの位置づけでしたが、 VCSSL 3.4 の時点で多くが標準ライブラリに統合されました(旧 Open VCSSL Library など)。

以下では、実際にそららの内のいくつかを使用してみます。

基本的なデータ構造

まずは、「スタック」や「キュー」などのデータ構造を扱うライブラリです。

スタクとキューは、値を出し入れして、溜めておくための仕組みです。 両者で異なるのはデータ の取り出し順序で、 キューは入れた順に、スタックは逆順に取り出します。 つまりスタックでは、最後 に入れたデータが最初に取り出されます。

データ構造を扱うための機能は、一般にジェネリクスを用いた構造体と関数によって提供されます。 そのため、任意型の値(自作の構造体を含む)を扱う事ができます。

以下に使用例を掲載します:

上のプログラムを実行すると、VCSSL コンソールに以下のように表示されます:

スタックから値を取り出します:
2
1
キューから値を取り出します:
1
2

上の通り、スタックでは入れたのと逆順に、キューでは入れた順に、値が取り出された事が分かります。

data.Stack/Queueはスタックとキューを扱うライブラリで、詳細情報は以下のURLで参照できます。

軽量フレームワーク

描画やアニメーションなど、特別な処理を記述する必要があるものの、 頻繁に用いられるような用途に関しては、毎回同じような内容を記述しなくても済むように、 軽量フレームワークが用意され ています。

用途に応じたフレームワークを用いる事で、ゼロからプログラムを開発しなくても、 最低限 必要な部分だけを記述すれば済むようになります。

3D描画

実際に3D描画を扱うためのフレームワークを使用してみましょう:

上のプログラムを実行すると、下図のような3Dアニメーション映像が表示されます。

実行結果
実行結果

上で用いた graphics3d.Graphics3DFramework は、3D描画用途をサポートする、 アニメーション対応のフレームワークです。 詳細情報は以下の URL で参照できます。

- Graphics3DFramework リファレンス -
https://ja.vcssl.org/lib/graphics3d/Graphics3DFramework

VCSSLには、3D描画を扱うための標準ライブラリ「 Graphics3D 」が存在します。 しかし、それだけで現実的な3Dプログラムを開発するには、表示画面や描画エンジンの生成や、 アニメーションループの制御、ライトの設定など、面倒な処理を自分で記述する必要があり、 簡易用途ではやや不便です(逆に、細かい部分まで自分で調整したい場合には便利です)。

そこでgraphics3d.Graphics3DFrameworkを使用すると、 そういった面倒な部分はフレームワークが自動で行ってくれます。 そして、準備が完了したタイミングでonStart関数、 アニメーション中の画面更新タイミングでonUpdate関数を呼んでくれます。 なので、これらの関数内に目的の処理を記述するだけで、手軽に3Dアニメーションプログラムを開発できます。

なお、このフレームワークでは、あくまで面倒な部分を自動化してくれるだけなので、 独自に記述する部分に関しては標準ライブラリ「 Graphics3D 」の関数を使用する必要があります。 上のプログラムでも、モデルの生成や配置、移動などにGraphics3Dライブラリの関数を使用しています。 標準ライブラリ「 Graphics3D 」に関する詳細情報は以下のURLで参照できます。

- Graphics3D ライブラリ リファレンス -
https://ja.vcssl.org/Graphics3D

2D描画

なお、3D同様、2D描画用のフレームワークも用意されています。使用例を以下に掲載します:

上のプログラムを実行すると、ウィンドウに線、長方形、楕円が表示されます。

実行結果
実行結果

上で用いたgraphics2d.Graphics2DFrameworkは、2D描画用途をサポートする、 アニメーション対応のフレームワークです。詳細情報は以下のURLで参照できます。

- Graphics2DFramework ライブラリ リファレンス -
https://ja.vcssl.org/lib/graphics2d/Graphics2DFramework

描画関数などに関しては、標準ライブラリ「 Graphics2D 」を使用する必要があります。詳細情報は以下のURLで参照できます。

- Graphics2D ライブラリ リファレンス -
https://ja.vcssl.org/lib/Graphics2D

グラフのプロット

独立したソフトウェアのようなツールとやり取りするAPIライブラリも存在します。 例えば、グラフソフトと通信し、グラフをプロットする機能を提供するライブラリなどが挙げられます。 ただし、そうした機能は実装規模が比較的が大きいため、サポートされるかどうかは、処理系開発元の判断によります。 グラフソフト関連の機能などは、数値計算分野に向けた処理系ではサポートされるかもしれませんし、 全く必要の無い用途に向けてはサポートされないかもしれません。

以上のような事を前提とした上で、 数値計算用の2D/3Dグラフソフトを制御するためのライブラリ仕様が、以下のURLの通りに用意されています。

- 2次元グラフ tool.Graph2D -
https://ja.vcssl.org/lib/tool/Graph2D
- 3次元グラフ tool.Graph3D -
https://ja.vcssl.org/lib/tool/Graph3D

上の「 tool.Graph2D/Graph3D 」ライブラリがサポートされている処理系においては、 上記仕様の通りに、2D/3Dグラフをプロットする事ができます。

2Dグラフ

実際の使用例は、細かい部分は処理系依存ですが、大まかに以下のようになります。まずは、2Dグラフの場合です:

実行すると、以下のようなグラフが表示されます:

実行結果
実行結果

座標軸の目盛りやラベルがどのように表示されるかは処理系依存です。

3Dグラフ

続いて、3Dグラフの場合です:

実行すると、以下のようなグラフが表示されます:

実行結果
実行結果

座標軸の目盛りやラベルがどのように表示されるかは処理系依存です。



スポンサーリンク



スポンサーリンク

この階層の目次
お知らせ

各ソフトウェアの最新版を一括でリリース、OpenJDKのJava実行環境(JRE)に対応
2019年03月06日 - RINEARNでは3月6日に、主要なソフトウェアの最新版を一括でリリースしました。今回のアップデートには、以前お知らせした、OpenJDKで生成したJREへの対応が含まれています。その概要等をお知らせします。

次回のVCSSL 3.4.10において、関数1個の挙動に非互換な修正が適用されます
2019年02月12日 - VCSSLの次回の正式リリース版3.4.10において、これまでドキュメントと実際の挙動が異なっていた描画系の関数1個に、非互換な修正が適用されます。その詳細と、使用コードでの対応方法について解説します。

RINEARNのソフトウェア向けにOpenJDKで生成したJava実行環境(JRE)の提供を開始
2019年02月06日 - Javaのリリースモデル変更への対応として、OpenJDKのjlinkツールを用いて、RINEARNのソフトウェア実行用に生成したJava実行環境(JRE)の提供を開始しました。その詳細と、今後の方針について解説します。

新着
画像の矩形(四角形)領域を切り抜く簡易ツール(複数ファイル一括処理版)

フォルダ内にある全ての画像ファイルを開き、その中の矩形(四角形)領域を切り抜いて、別のフォルダに保存する簡易ツールです。
2019年03月15日
画像の矩形(四角形)領域を切り抜く簡易ツール

画像ファイルを開き、その中の矩形(四角形)領域を切り抜いて保存する簡易ツールです。
2019年03月14日
入力された数式を積分して値とグラフを表示するツール

画面上で数式を入力すると、それを数値的に積分し、値とグラフを表示してくれるGUIツールです。
2019年01月20日
z = f(x,y,t) の形の数式を3Dグラフとしてアニメーション描画するツール

入力欄に z = f(x,y,t) の形の数式を入力すると、それを3次元のグラフにアニメーション描画してくれる簡易ツールです。
2018年11月26日
y = f(x,t) の形の数式を2Dグラフとしてアニメーション描画するツール

入力欄に y = f(x,t) の形の数式を入力すると、それを2次元のグラフにアニメーション描画してくれる簡易ツールです。
2018年11月25日
開発元Twitterアカウント

スポンサーリンク