VCSSLでは、こんなことができる ! - VCSSLの用途

続いて、VCSSL で扱える様々な用途を紹介します。

- 目次 -

日常のちょっとした計算をすぐにできる

例えば、日常のあるとき、ちょっとした計算が必要になったとしましょう。

電卓ソフトを起動して手動で計算してもいいですが、似たような計算を、値を変えて何度も行うような場合には面倒です。

そんな時はメモ用のソフトなどを開き、計算内容を書いて拡張子「 .vcssl 」をつけて保存すれば、あとはそれをダブルクリックするだけで、すぐに計算を実行できます。

例 - 素数判定を行うプログラム

このプログラムは、ユーザーの入力値が素数かどうかを判定する計算プログラムです。

50 行に満たない規模でありながら、起動後に入力フォームを表示して値を受け取り、対話的に素数判定を行います。

簡易GUI アプリを開発できる

高機能な汎用言語でGUI(画面)部分を作成するには、高機能であるが故に、面倒な記述が必要となる場合が多くあります。

特に、中核の処理内容が単純である場合に、GUI 部分に多くの手間をかけるのは割に合わないという事も多いでしょう。

VCSSL では、細かさや機能性では汎用言語に劣るものの、最短3 行でボタンのあるウィンドウを作る事ができます。そのため、小規模な簡易GUIアプリであれば手軽に開発する事ができます。

例 - 16進数カラーコードとRGB値の相互変換・色表示アプリ

このプログラムは、GUI 上でRGB 値とカラーコードを相互変換するプログラムです。実際の色を表示して確認する事もできます。

全体の規模は空白・コメント込みで450 行程度、GUI の制御に関する部分は250 行程度です。

アニメーション対応の2D/3Dグラフィックスで、リアルタイムシミュレーションも

VCSSL は、2D/3D グラフィックスを標準ライブラリでサポートしています。共にリアルタイムでの処理に対応しており、アニメーション描画などを行う事が可能となっています。

こうしたグラフィックス機能を活用すれば、他言語では複雑大規模になりがちなリアルタイム演算・アニメーション描画のシミュレーションなども、VCSSL のみで完結して開発する事ができます。

なお、VCSSL の3D グラフィックス機能は、ソフトウェア実装のレンダラー(描画エンジン)で処理されるため、グラフィックスボードなどの特別なハードウェアの有無に関わらず、どのようなコンピューター上においても動作します。

その分、ハードウェアを用いる場合と比較してパフォーマンスは制限されますが、それでも数十万ポリゴン/秒の性能水準を実現しています。

例 - 凸レンズを通過する波のシミュレーション

このプログラムは、弾性体の媒質中を伝わる力学波が、凸レンズ形状の密度分布で屈折し、焦点に集中する様子を再現したシミュレーションです。

物理演算はリアルタイムで行い、その結果を3D アニメーションで表示しています。 なお、密度分布はPNG 形式画像ファイルから読み込む設計になっています。

例 - 二重振り子のシミュレーション

このプログラムは、二重振り子の運動を再現したシミュレーションです。

こちらも物理演算はリアルタイムで行い、その結果を2D アニメーションで表示しています。 リアルタイム物理演算では、ラグランジュ方程式の数値解析処理を、オイラー法で1 フレームあたり約5000 回処理しています。

グラフプロット機能を活用して数値計算も

VCSSL は、電卓ソフト用の言語であった事の名残として、2D/3D のグラフプロット機能が充実しており、数値計算プログラムでは強力です。 グラフ機能は標準ライブラリでこそありませんが、ほぼ全ての実行環境がサポートしており、手軽に使用できます。

ところで数値計算と言えばC 言語が主流です。もちろん処理速度ではC 言語が圧倒的に有利で、C で数十秒.数分かかるといった場合、VCSSL は明らかに適していません。

しかし短時間で終わるような軽い計算の場合なら、VCSSL の方がプログラム内からグラフにプロットでき、パラメータを変えてのアニメーションプロットも可能となるなど、効率的な解析を行えるため、用途によっては有利になり得ます。

必要であればGUI でパラメータ設定画面を作れるのも利点です。

例 - ローレンツアトラクタ(ファイル出力版)

このプログラムは、ローレンツアトラクタを4 次ルンゲ=クッタ法で計算し、結果をファイルに書き出して、それを3D グラフにプロットさせる、いわゆる「典型的な数値計算」のプログラムです。

このプログラムはC 言語でもほぼ同じ動作を実現できるため、実は VCSSL で記述するメリットはあまりありません。そこで以下のプログラムをご覧下さい。

例 - ローレンツアトラクタ(GUI版)

このプログラムは、上と同様ローレンツアトラクタを計算して3D グラフにプロットするプログラムですが、ファイルを介さずに、座標値配列を直接グラフに転送しています。

さらにGUIの設定画面を備えており、スライダーでパラメータを操作すると、自動で再計算されてグラフが更新されます。

例 - 力学アルゴリズムによる波のシミュレーション(線上の波)

このプログラムは、弾性体の線上を伝わる波の様子を、2Dグラフにアニメーションプロットするプログラムです。

この計算は軽く、VCSSL でも一瞬で終わるため、毎秒数十回の頻度で再計算とプロットを繰り返し、アニメーションさせています。