リニアングラフ3D 5.6 リリースノート


----------------------------------------------------------------------------------------------------
| 5.6.42
----------------------------------------------------------------------------------------------------

・Y/Z目盛りの書式設定のバグ修正

　Y/Z目盛りの「書式」を手動で設定する希望が、作用しなくなっているバグを修正しました。

・特定のCSVファイルの複数読み込み時のバグ修正

　最終行が「,,」で終わる3カラム書式のCSVファイルを複数まとめて読み込んだ場合、
　結合箇所にゼロ座標点が挟まるバグを修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.40
----------------------------------------------------------------------------------------------------

・ 画像の透明度指定

　　「編集」>「目盛りの設定」>「画像」において、画像の透明度を指定可能になりました。
　　内向きと外向きの際で、別々の透明度を設定可能です。

・等高線の色指定

　　「オプション」>「等高線」において、色を指定可能になりました。
　　同オプションを有効化すると、色の選択肢が提示され、自動(ATUO) / 黒(BLACK) / 白(WHITE) / 任意色(RGB)から選択できます。
　　RGBを選んだ場合は、赤(R) / 緑(G) / 青(B) 色成分の割合を任意入力可能です。

・カラーバーのフォントの独立設定

　　「編集」>「フォントの設定」において、カラーバーの目盛りフォントを、
　　グラフ枠の目盛りフォントとは独立に設定可能になりました。

・設定ファイル読み込みのバグ修正

　　データファイルと同じ場所に置いてある設定ファイルが、
　　最近のバージョンで読み込まれなくなっていたバグを修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.38D
----------------------------------------------------------------------------------------------------

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.52 になりました：

    * テキスト処理や外部プロセス実行、OS情報取得などのいくつかの機能が追加されました。
    * 特定パターンの正しいコードが構文エラーになってしまうバグを修正しました（3.4.50の修正範囲漏れ）。
    * Java24上において、Java23以前と一部挙動が変わってしまう問題を修正しました（3.4.48の修正範囲漏れ）。


----------------------------------------------------------------------------------------------------
| 5.6.38C
----------------------------------------------------------------------------------------------------

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.50 になりました。
    Java24上において、Java23以前と一部挙動が変わってしまう問題を修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.38B
----------------------------------------------------------------------------------------------------

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.48 になりました。
    特定パターンの正しいコードが構文エラーになってしまうバグを修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.38
----------------------------------------------------------------------------------------------------

・目盛り画面のレイアウト改修

    「編集」>「目盛りの設定」メニューの画面がすし詰めになり過ぎていたので、
    タブ式のレイアウトに改修しました。

・目盛り位置とラベルを自由に調整可能に

    「編集」>「目盛りの設定」メニューの「刻み」タブにおいて、
    各軸のモードを「手動」にすると、目盛りの位置とラベルを自由に決められるようになりました。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.46 になりました。

・VCSSL用APIの追加

    Graph3Dライブラリに、目盛り設定のための以下の関数を追加しました:

      * setGraph3DTickX(int graphID, double tickCoords[], string tickLabels[])
      * setGraph3DTickY(int graphID, double tickCoords[], string tickLabels[])
      * setGraph3DTickZ(int graphID, double tickCoords[], string tickLabels[])
      * setGraph3DTickColorBar(int graphID, double tickCoords[], string tickLabels[])
      * setGraph3DTick(int graphID,
            double xTickCoords[], string xTickLabels[],
            double yTickCoords[], string yTickLabels[],
            double zTickCoords[], string zTickLabels[],
            double colorBarTickCoords[], string colorBarTickLabels[]
        )

    また、軸ラベル設定用の以下の関数も追加しました:

      * setGraph3DLabelX(int graphID, string label)
      * setGraph3DLabelY(int graphID, string label)
      * setGraph3DLabelZ(int graphID, string label)
      * setGraph3DLabel(int graphID, string xLabel, string yLabel, string zLabel)

・Java言語用APIの追加

    RinearnGraph3D クラスに、目盛り設定のための以下のメソッドを追加しました:

      * setXTicks(double[] tickCoords, String[] tickLabels)
      * setYTicks(double[] tickCoords, String[] tickLabels)
      * setZTicks(double[] tickCoords, String[] tickLabels)
      * setColorBarTicks(double[] tickCoords, String[] tickLabels)


----------------------------------------------------------------------------------------------------
| 5.6.36B
----------------------------------------------------------------------------------------------------

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.42 になりました。
    ファイルを書き込みモードで開くと落ちてしまうバグを修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.36
----------------------------------------------------------------------------------------------------

・OpenJDK 21.0.2 でのビルド

    本バージョンより、ビルドに OpenJDK 21.0.2 が使用されています。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.40 になりました。
    英語対応の度合が向上し、後述のバグ修正も実施しました。

・VCSSL用APIの修正（Graph3Dライブラリ）

    ファイルを開く setGraph3DFile 関数群において、配列によってファイル名とモードを指定する、下記の関数を修正しました：

      * setGraph3DFile(int graphID, string filePaths[], string modes[])

    引数 filePaths が配列ではない場合は正常に動いていましたが、配列の場合はエラーが出て機能しない状態でした。

・コマンドライン用機能の拡張

    コマンドラインで使用する際の、オプション周りを充実させました。

    これまでは「ファイルを指定しつつ立ち上げる」くらいしかできませんでしたが、今回から
    設定ファイルを指定したり、画像を出力したり、それらが終わったら自動で閉じる、などの制御が可能になりました。
    プログラムを書いて制御するほどの事ではない、ちょっとした処理をシェルスクリプトに書きたいような場合に便利です。

    詳細はコマンドラインから ring3d --help すると読める説明文をご参照ください。

・マウス操作時の描画の改善

    かなり描画が重い時に、マウス操作をラフにし続けると、描画内容が乱れる事がありました。
    それを軽減するために少し手を入れました（しかし完璧に防ぐには次期版/Ver.6系に移行するまで設計的に難しいです）。


----------------------------------------------------------------------------------------------------
| 5.6.34
----------------------------------------------------------------------------------------------------

・OpenJDK 20.0.2 でのビルド

    本バージョンより、ビルドに OpenJDK 20.0.2 が使用されています。

・メモリー容量設定用バッチファイルのバグ修正

    同梱の「 メモリー容量設定.bat 」によってメモリー使用量を設定しても、反映されないバグを修正しました。

・グラフの6面にそれぞれ画像を貼り付け可能に

    従来でも、グラフの底面に画像を貼り付け可能でしたが、本バージョンから6面すべてに貼り付けられるようになりました。
    メニューバーから「設定」 > 「目盛りの設定」を開き、設定画面の右端付近のエリアで指定できます。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.36 になりました。

・Java言語用APIの修正
    RinearnGraph3Dクラスの setAsynchronousPlottingEnabled(boolean enabled) メソッドを呼び出すと、
    引数 enabled の値に関わらず、常に非同期プロットが有効になってしまうバグを修正しました。
    （引数 enabled に true を指定すると有効化、false を指定すると無効化されます。）


----------------------------------------------------------------------------------------------------
| 5.6.32
----------------------------------------------------------------------------------------------------

・OpenJDK 20.0.1 でのビルド

    本バージョンより、ビルドに OpenJDK 20.0.1 が使用されています。

・Java言語用APIの拡張: 4次元データを配列で指定するAPI

  X/Y/Z座標値にスカラ値を加えた4次元のデータを、配列として直接指定できるようにするため、
  RinearnGraph3Dクラスに下記メソッドを追加しました。

  * void setData(double[] x, double[] y, double[] z, double[] scalarValues)
  * void setData(double[][] x, double[][] y, double[][] z, double[][] scalarValues)
  * void setData(double[][][] x, double[][][] y, double[][][] z, double[][][] scalarValues)
  * void appendData(double[] x, double[] y, double[] z, double[] scalarValues)
  * void appendData(double[][] x, double[][] y, double[][] z, double[][] scalarValues)
  * void appendData(double[][][] x, double[][][] y, double[][][] z, double[][][] scalarValues)

・Java言語用APIの拡張: 描画エンジンの直接操作における文字列描画

  描画エンジンの直接操作を扱う com.rinearn.graph3d.renderer.RinearnGraph3DRenderer クラスにおいて、
  3D空間内に文字列を描画するための下記メソッドを追加しました。

  * void drawText(double x, double y, double z, String text, Font font, Color color)
  * void drawText(double x, double y, double z, String text, Font font, RinearnGraph3DDrawingParameter parameter)

・Java言語用APIの拡張: スクリーン横の操作部品の非表示化

  スクリーン横の、各軸の長さを操作するバーなどの部品を非表示にできるように、
  以下のメソッドをRinearnGraph3Dクラスに追加しました。

    * RinearnGraph3D.setScreenSideUIVisible(boolean visible)

  リニアングラフ3Dを自作プログラム/ソフトウェアに組み込む場合などにおいて、
  ユーザーが行える操作を最小限に留めたい場合や、極力シンプルなグラフ画面にしたい場合などに有用です。
  （そのような場合、併せて setMenuVisible でメニューバーや右クリックメニューも非表示にすると効果的です。）

・Java言語用APIの拡張: データファイルを開くメソッドにおいて、書式を指定可能に

  Java言語経由でデータファイルを開くための、com.rinearn.graph3d.RinearnGraph3Dクラスの
  openDataFile メソッドにおいて、下記のように書式を指定可能な派生版を追加しました。

  * void openDataFile(File dataFile, RinearnGraph3DDataFileFormat format)
  * void openDataFiles(File[] dataFiles, RinearnGraph3DDataFileFormat[] formats)

  ここで RinearnGraph3DDataFileFormat は、リニアングラフ3Dでサポートされているファイル書式を表す enum 型です。
  以下の要素が存在します。

      AUTO
        ファイルの内容から書式を自動判定するための、特別な要素です。

      MATRIX_CSV
        カンマ区切りのマトリックス書式です。

      MATRIX_STSV
        タブまたは空白区切りのマトリックス書式です。

      THREE_COLUMNS_CSV
        カンマ区切りの3カラム書式です。

      THREE_COLUMNS_STSV
        タブまたは空白区切りの3カラム書式です。

      FOUR_COLUMNS_CSV
        カンマ区切りの4カラム書式です。

      FOUR_COLUMNS_STSV
        タブまたは空白区切りの4カラム書式です。

・VCSSL用APIの拡張: データファイルを開く関数において、書式を指定可能に

  VCSSLプログラムでリニアングラフ3Dを制御し、特定のデータファイルを開いてプロットするには、
  Graph3D ライブラリの setGraph3DFile 関数を使用します。
  同関数の引数を増やした版を増設し、今回から、下記のようにファイル書式を指定可能になりました。

    * setGraph3DFile(int graphID, string filePath, string mode)
    * setGraph3DFile(int graphID, string filePaths[], string modes[])

  引数 mode に書式を指定します。値は、下記の一覧から選び、そのまま文字列値として指定します。

      AUTO
        ファイルの内容から書式を自動判定する、特別な値です。

      MATRIX_CSV
        カンマ区切りのマトリックス書式です。

      MATRIX_STSV
        タブまたは空白区切りのマトリックス書式です。

      3COL_CSV または 3COLUMNS_CSV
        カンマ区切りの3カラム書式です。

      3COL_STSV または 3COLUMNS_STSV
        タブまたは空白区切りの3カラム書式です。

      4COL_CSV または 3COLUMNS_CSV
        カンマ区切りの4カラム書式です。

      4COL_STSV または 4COLUMNS_STSV
        タブまたは空白区切りの4カラム書式です。

  なお、区切り記号については、指定書式と実際のファイル内容が食い違っても読み込める場合があります。
  （例えばCSVファイルをSTSV系のモードで読めたり、その逆などです。）
  しかし、これはグラフソフト側の訂正機構による挙動であり、将来のバージョンでも開ける保証はありません。
  そのため、可能な限り正しく指定してください。

・設定ファイルを読み込んだ際の挙動を一部修正

  設定によって「平面化 / Flat」オプションが有効化された時に、
  同オプションの詳細設定画面が立ち上がってしまう挙動を修正しました。

  詳細設定画面は本来、手動で同オプションをONにした際に立ち上がるものですが、
  その設定内容は設定ファイル内に記載されているため、
  設定読み込み時に立ち上がっても邪魔なだけです。
  しかし、現状では立ち上がるようになっていたため、修正しました。

・一部のマウスのホイールスクロール操作に関するバグ修正

  一部のマウス（特に、ホイールに高解像度センサーの一種を用いているもの）を使用している環境において、
  マウスホイールの回転に対する挙動が、回転方向によらず常にズームアウトになってしまうバグを修正しました。

　なお、従来から問題が生じなかったマウスに対しては、特に影響は無く、これまでと何も変わりません。


----------------------------------------------------------------------------------------------------
| 5.6.30
----------------------------------------------------------------------------------------------------

・OpenJDK 19.0.1 でのビルド

    本バージョンより、ビルドに OpenJDK 19.0.1 が使用されています。

・X/Y/Z軸反転オプションの修正
　　平面化オプション使用時や、カメラ設定時において、X/Y/Z軸反転オプションの効果がリセットされる問題を修正しました。

・等高線の設定読み込みに関する修正
　　設定ファイルを読み込んだ際、等高線オプションの「 区間数 」の設定値が反映されない問題を修正しました。


----------------------------------------------------------------------------------------------------
| 5.6.28
----------------------------------------------------------------------------------------------------

・OpenJDK 19 でのビルド

    本バージョンより、ビルドに OpenJDK 19 が使用されています。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.28 になりました。

・アニメーションのモード「INDEX」を少し改修し、「INDEX-POINT」へ変更

    従来アニメーションモード「INDEX」では、これまで、線プロットと併用すると
    「 t 番目の点 」 と 「 t+1 番目の点」を結ぶ線が、始点から終点まで動くようにアニメーションされていました。
    点プロットとの併用時にも、線の後ろよりも前側に点が付くように、「t+1番目の点」が描画されるようになっていました。

    一方で、後で追加された「TRACE」モードは、「0番目の点」から「t番目の点」までを結ぶため、
    両者を同時刻（同じスライダー位置）で比較すると、「INDEX」モードの方が1コマ分だけ未来を描画する事になり、
    ややこしい状態になっていました。

    この時刻基準のずれを、「TRACE」側に合わせて統一するため、線プロットでは「t-1 番目の点」 と 「t番目の点」を結ぶ線、
    点プロットではシンプルに「t番目の点」を描画するように改修しました。

    また、仕様が変わったため、モード名も「INDEX」から「INDEX-POINT」に改めました。
    これは、系列インデックスを切り替えてアニメーションする「INDEX-SERIES」の存在なども影響して（INDEXよりも後に追加）、
    「INDEX」が一体何のインデックスを指すのか、若干分かり辛くなっていたためでもあります。
    新しい「INDEX-POINT」は、「座標点のインデックス」を切り替えてアニメーションする事を明確にした命名です。

・文字化けしていた一部テキストファイル類の文字コード変更

    少し前までは、JREのデフォルトの文字コードは CP932（≒Shift_JIS）でしたが、最近は UTF-8 になりました。
    それに伴い、従来からあった一部のテキストファイルの読み込み処理などで、文字化けしてしまっている箇所がありました。
    そういったファイルの文字コードを、Shift_JIS から UTF-8 に変更しました。

・文字コード設定用のバッチファイルの追加

    上述の通り、JREのデフォルト文字コードが変わったため、旧来と同じ状態で使用したい場合のために、
    デフォルトの文字コードを切り替えるバッチファイル「 文字コードの切り替え.bat 」を追加しました。
    昔作成したスクリプトやデータファイルなどが文字化けしてしまう場合にご利用ください。

・その他、起動関連のバッチファイル類の更新

    起動や初期設定のためのバッチファイル類を更新しました。
    初回起動時のセットアップ手順が、従来よりも手短になりました。


----------------------------------------------------------------------------------------------------
| 5.6.26
----------------------------------------------------------------------------------------------------

・OpenJDK 16 でのビルド

    本バージョンより、ビルドに OpenJDK 16 が使用されています。

・座標軸ラベルの余白関連の改善

    座標軸ラベルと目盛り数値の間の余白を微調整しました。
    また、座標軸ラベルの余白調整アルゴリズムを見直し、
    余白が座標軸の長さによらず一定に保たれるようになりました。

・面ポリゴンの遠近判定精度の向上と修正

    面プロット時において、ポリゴンの遠近判定精度を低下させていた処理を見直しました。
    これにより、同じ視点方向に重なっているポリゴンの前後関係が、
    稀に食い違ってしまう箇所が生じる現象が修正（低減 ※）されました。

    ( ※ リニアングラフでは、3D描画アルゴリズムとしてZソート法を使用している都合により、
         非常に接近したポリゴンや、互いにめり込んでいるポリゴンの
         前後関係の描画精度には限界があります。
         また、異なる種類のポリゴン間(点/線/面など)では、
         「重なっている際に、実用性においてどちらが手前に見えるべきか」等の観点によって、
         細かい微調整をして実用水準に合わせ込んでいる部分もあります。 )

・Java言語用APIによって渡した配列データが、リニアングラフ側から書き換えられる場合がある挙動の修正
  (配列の参照ではなくコピーが渡されるように変更)

    RinearnGraph3DクラスのsetDataおよびappendDataメソッドで、プロット対象の配列データを渡す際、
    従来は、配列の参照がそのまま、リニアングラフ3D内部のプロット対象データとしてセットされていました。
    ただ、リニアングラフ3D内部のプロット対象データは、対数プロットなどのオプションを使用した際に
    内容が加工される場合があり、それが呼び出し元の配列データにも反映されてしまう問題がありました。
    そのため今回のバージョンからは、上記メソッド呼び出し時に、
    参照を切るために別の配列に内容がコピーされ、そちらが渡されるようになりました。
    ( これにより、先述のような問題は生じなくなりましたが、
       その反面、データの受け渡しのオーバーヘッドが若干大きくなりました。)

・メニューバー非表示時の余白の調整

    Java言語用APIの setMenuVisible(boolean visible) メソッドを用いてメニューバーを非表示にした際、
    従来ではメニューバーの高さの分だけ余白が増えてしまっていましたが、
    余白が適切に調整されるようになりました。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.26 になりました。


----------------------------------------------------------------------------------------------------
| 5.6.24
----------------------------------------------------------------------------------------------------

・OpenJDK 15 でのビルド

    本バージョンより、ビルドに OpenJDK 15 が使用されています。

・目盛りの書式指定が一部反映されない挙動の修正

    前回のバージョンにおいて、目盛りの書式を手動で設定（デフォルトでは自動設定）した場合、
   「0.1〜10:」の項目の下にある、「上記以外」の項目に入力した書式が反映されない挙動を修正しました。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.24 になりました。
    (ビルド環境の最新化のみで、機能的には変わりません。)


----------------------------------------------------------------------------------------------------
| 5.6.22
----------------------------------------------------------------------------------------------------

・OpenJDK 14 でのビルド

    本バージョンより、ビルドに OpenJDK 14 が使用されています。
   （このバージョンでは 14.0.2）


・VCSSLのアップデート

    同梱されているVCSSLのバージョンが 3.4.22 になりました。
    詳細はVCSSLのリリースノートをご参照ください。


・起動用スクリプト類の更新

    起動用のバッチファイルやシェルスクリプト類を更新しました。
    主に内容の整理目的ですが、シェルスクリプトにおいて複数の引数を渡せなかった挙動の修正なども行いました。


・アニメーションツールでの連番画像保存機能の追加

   「ツール」>「アニメーション」機能において、
    アニメーションの各コマの画像を、連番の画像ファイルとして一括保存できるようになりました。
    アニメーション機能のウィンドウ右下の、「連番画像を保存」ボタンを押すと保存できます。
    保存先は指定可能ですが、デフォルトでは「 AnimationOutput 」フォルダに保存されます。


・既存のアニメーション用プログラムの入出力フォルダの変更

   これまで、「プログラム」メニュー内にあるアニメーション関連のプログラムにおける
   デフォルトの入出力フォルダは、それらのプログラムのある場所に配置されていました。
   具体的には、
  「 RinearnGraph3DProgram 」フォルダ内の「 animation3d_input 」や「 animation3d_output 」フォルダ
   などが使用されていました。

   一方で、一つ上で述べた項目のように、このバージョンから「ツール」>「アニメーション」メニューも画像を保存可能になりました。
   メニューによってデフォルトの入出力フォルダが異なるのはややこしいため、このバージョン以降、「プログラム」メニューも含めて、
   アニメーション関連の全ての入出力フォルダを、ソフトのフォルダ直下にある
  「 AnimationInput 」と「 AnimationOutput 」フォルダへと移行しました。


・点プロット時のマーカー描画機能のサポート

   点プロットにおいて、単純な点の代わりに、記号文字のマーカーを描画できるようになりました。

   メニューバーから「オプション」>「点プロット」を一旦無効化し、再度有効化すると、
   点プロットの設定ウィンドウが表示されます。
   そこで「マーカーを使用する」の項目を有効化すると、マーカーが描画されます。
   マーカーの記号文字は、上記のウィンドウ上で自由に指定できます。

   マーカーの記号は「,」区切りで複数指定でき、描画時には系列ごとに記号が切り替わります。
   複数系列のデータの記述方法については、書式によって異なるため、詳しくは下記ガイドページをご参照ください。

     https://www.rinearn.com/ja-jp/graph3d/guide/file

   例えば3カラム書式では、データファイル内に2行連続した空白行があると、そこが系列の区切りと見なされ、マーカーの記号が変わります。

   例として「SampleDataFile」フォルダ内に、
   実際に3カラム書式による複数系列のサンプルファイル「 MultiSeriesSample_複数系列サンプル.txt 」が同梱されています。


・グラデーション彩色の補間を無効化可能に

   「グラデーション」オプション有効時において、色の変化をなめらかに補間する処理を無効化できるようになりました。

   グラデーションオプションはデフォルトで有効なため、一旦OFFにして再度ONにすると、設定画面が表示されます。
   その設定画面上にある「 色変化をなめらかに補間 」項目をOFFにすると、彩色の補間を無効化できます。
   無効化すると、色が区間ごとにベタ塗りされるようになります。
   色区間の数は、グラデーションオプション設定画面の「カラーリスト」項目に記載した色の数がそのまま採用されます。
   色区間の数や境界が、望む数や位置になるように、カラーリストの色や個数などを調整してください。

  （必要に応じて、同じ色を連続して記載するなども有効です。例えばカラーリスト内の一部で、
   同じ色を3連続で記載すると、3区間が同じ色で塗られるため、実質的に3倍の長さの1区間を表す事ができます）。

   なお、グラフ左上に表示されているカラーバーの目盛りの区間数は、
   「編集」>「目盛りの設定」>「目盛り区間数（カラーバー）」から設定できます。


・グラデーションの軸の指定をサポート

   Z軸以外に、X軸とY軸の座標値に基づくグラデーションが可能になりました。


・等高線描画アルゴリズムの修正/改善

   等高線の高さと完全に同じ(かつ水平な)面/辺がある場合などに、異なる高さの等高線を繋ぐ尖った三角形が描画される場合がある問題を修正しました。
   また、等高線の描画アルゴリズムを一部改善し、メッシュのセル内に等高面との交点が3点以上ある場合の描画精度が少し向上しました。

   （この場合は、セル内のみに注目した際の等高線の引き方に任意性があるため、
     全体に渡って連続的な等高線を引きたい場合は、「テッセレーション」オプションを併用し、
     メッシュ全体を細かく補間分割してください。
     補間モードについては、「PARABOLIC」モードは二次曲面的な補間を行うため、曲面的なデータに対しては滑らかになります。
     一方、フラットであるべき領域がある場合などには、曲面的に補間するとおかしい場合もあるため、直線的に補完する「GRAVITIC」モードの方が無難です。）


・目盛り描画アルゴリズムの改善

   グラフの角度に応じて、各辺の目盛りの表示/非表示を自動で切り替えるアルゴリズムを一部改修しました。
   これにより、目盛りの邪魔な箇所を非表示にする精度が改善しました。


・目盛りの線を内向きに描画する機能のサポート

   グラフの枠から、目盛りの数字の位置に引かれている細かい線を、枠の内側に描画する機能をサポートしました。

   メニューバーから「編集」>「目盛りの設定」を選んで目盛り設定ウィンドウを表示し、
   そこで「線の長さ」項目の下にある「内向きに描画」項目を有効化すると、
   内向きに描画されるようになります。

   なお、単純に内向きに設定しただけの状態だと、目盛りの数字がグラフの枠に接近するため、
   X/Y/Z各次元の端で数字が重なってしまいやすくなります。
   そのため、「数字の余白」項目で余白を増やして調整してください。

   または、「編集」>「フォントの設定」から、目盛りフォントの文字サイズを小さくして調整してください。


・目盛り数値のフォントサイズのデフォルト値の変更

   Ver.5.6以降、目盛り数値のフォントサイズは標準で15ptでしたが、
   少し大きすぎる気がするため、12ptにしました。

   （ 昔のバージョンではアンチエイリアス描画に対応していなかった関係で、
      小さい数字がギザギザで見づらくなってしまう問題があり、そのため大きめの値になっていたのですが、
      現在はアンチエイリアスが利用可能で、標準で有効になっているため、綺麗に描画されます。 ）

   なお、フォントサイズはメニューバーから「編集」>「フォントの設定」で自由に調整可能です。


・データファイルにおけるコメント行のサポート

  データファイル内で、「 # 」で始まる行は、コメントとして読み飛ばされるようになりました。


・データファイルのフォーマット名の整理

   データファイルを開く際に選択できるフォーマット名の一部を、以下のように変更して整理しました。

     (旧) -> (新)
     3-COLUMN(TSV) -> 3-COLUMNS(TSV)
     3-COLUMN(CSV) -> 3-COLUMNS(CSV)
     3-COLUMN + COMMENT(TSV) -> 4-COLUMNS(TSV)
     3-COLUMN + COMMENT(CSV) -> 4-COLUMNS(CSV)

  「4-COLUMNS (旧 3-COLUMN + COMMENT)」形式は、
   従来は座標点の横にコメントを付けるためにだけ使用する形式でしたが、
   本バージョンからグラデーション彩色でも有用になりました（すぐ後の項目参照）。


・4列データ書式「 4-COLUMNS 」によるグラデーション彩色機能のサポート

   上記の 4-COLUMNS 書式（旧名： 3-COLUMN + COMMENT 書式）は、1行ごとに空白やカンマ区切りで、
   x  y  z 値を3列の記載する 3-COLUMNS 書式の右に、もう一列を追加したものです。
   これまでは「 コメントプロット / With Comments 」オプションにおいて、
   各座標点にコメントなどを表示するためだけの書式でした。

   今回のバージョンからは、4列目のデータに数値を記載して、
   その数値に応じてグラデーション彩色が可能になりました。

   使用するには、「 グラデーション / Gradation 」オプションを無効化して再び有効化すると表示される
   設定画面の上部から、「 基準軸 / AXIS 」項目で「 COLUMN-4 」を選択してください。

   例として「 SampleDataFile 」フォルダ内に、
   サンプルのデータファイル「 4ColumnsSample_4列書式サンプル 」が付属しています。


・4列データの自動認識の挙動変更（ MATRIX と 4-COLUMNS のどちらかを選択する形に ）

   これまで、書式に「 AUTO 」を選択した状態で4列データを読み込んだ場合、
  「 MATRIX 」書式で読み込まれていました。これは、それ以外に4列データに適合する書式が無かったためです。

   一方、このバージョンより「 4-COLUMNS 」書式によるグラデーション彩色（上の項目参照）をサポートした都合上、
   今後は「 4-COLUMNS 」書式のファイルを開くケースが増加する事が見込まれます。
   そのため、今後は「 AUTO 」選択状態で4列データを開いた場合に、
  「 MATRIX 」と「 4-COLUMNS 」のどちらで開くか尋ねられるように挙動が変わりました。


・VCSSL用のAPIにおいて、設定ファイルと同様の書式で、文字列(string値)として設定コードを読み込む関数を追加

   VCSSLでの制御用APIライブラリである「 tool.Graph3D 」ライブラリにおいて、
   独立した関数として用意されていないような細かい設定項目は、従来は設定ファイルを用意し、
   setGraph3DConfigurationFile 関数によって読み込ませる必要がありました。

   今回のバージョンから、ファイルを用意しなくても、設定ファイルと同様の書式で記述したコードを
   文字列として読み込ませて反映できる、以下の関数が利用可能になりました：

     setGraph3DConfigurationCode(int graphID, string code)

   詳細は lib/toolフォルダ内の仕様書 Graph3D.html をご参照ください。


・設定パラメータ名の整理

   設定ファイルの書式においていくつかの設定パラメータ名を変更し、整理しました。
   なお、互換措置として、旧来の設定パラメータ名もこれまで通り読み込み可能です。


・平面化（Flat）モード時に座標軸の一部の線が微妙に太くなる場合がある挙動の修正

   目盛り設定条件などによっては、平面化（Flat）オプションを有効化した際、
   座標軸の一部の線が、本来の1ピクセルから2ピクセル程度に太く描画されてしまう場合がある挙動を修正しました。


・付属の連番画像アニメーション再生プログラムにおいて、同一画像の(起動後)初回読み込み後の変更が反映されない挙動の修正

  「プログラム」>「連番画像ファイルのアニメーション再生.vcssl」使用時に、
   同じパス（場所と名前）の画像ファイルに対して、内容変更と再読み込み＆再生を繰り返した場合、
   リニアングラフを再起動するまでは変更が反映されない挙動を修正しました。
   (これは VCSSL での Graphics ライブラリの loadImage 関数の挙動に起因するもので、同関数の挙動が修正されまいた。)



----------------------------------------------------------------------------------------------------
| 5.6.20
----------------------------------------------------------------------------------------------------

・OpenJDK 13 でのビルド

    本バージョンより、ビルドに OpenJDK 13 使用されています。

・VCSSLのアップデート

    同梱されているVCSSLのバージョンが 3.4.20 になりました。

・回転アニメーションを行う機能の追加

  「プログラム」メニューの「回転アニメーション」として、
  グラフをゆっくりと回転させ続けるアニメーションを行うVCSSLプログラムを同梱しました。
  普通にファイルなどからグラフを描画した状態で、上記プログラムを選択・実行すると、グラフが回転します。
  全角度のグラフを連番の画像ファイルとして保存する事もできます。

・tool.Graph3Dライブラリの機能追加

  リニアングラフ3Dの制御用APIライブラリである tool.Graph3D ライブラリで、
  以下の関数が新たに利用可能になりました。

    - void setGraph3DCameraAngle( int graphID, float horizontalAngle, float verticalAngle, string mode )
      カメラアングルを設定します。

    - void setGraph3DCameraMagnification( int graphID, float magnification )
      カメラ倍率を設定します。

    - void setGraph3DCameraDistance( int graphID, float distance )
      カメラ距離を設定します。

    - setGraph3DCameraPerspective( int graphID, bool perspective )
      カメラの遠近感の有効/無効を設定します。

  各関数の詳細仕様は、lib フォルダ内のさらに tool フォルダ内にある、Graph3D.html をご参照ください。

----------------------------------------------------------------------------------------------------
| 5.6.18
----------------------------------------------------------------------------------------------------

・JRE導入ガイド処理の改善

    初回起動時に、JREが存在しない場合に実行されるJREの導入ガイド処理において、
    途中でZIPファイルを手動で展開する手順がありますが、その際に使用する展開（解凍）ソフトによっては、
    展開結果のフォルダ階層の差異により、うまく導入できない場合がありました。
    今回から、展開結果のフォルダ階層を複数パターン想定し、対応できるように改善しました。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.18 になりました。

----------------------------------------------------------------------------------------------------
| 5.6.16
----------------------------------------------------------------------------------------------------

・画面リサイズ直後に反応が遅れる挙動の修正

    画面の境界をゆっくりマウスドラッグし、連続的に数秒かけてリサイズを行った直後に、
    グラフ描画などの反応が少し遅れる挙動を修正しました。

・連番ファイルのアニメーション描画機能の追加

  「プログラム」メニューの「連番3Dデータファイルのアニメーション」として、連番の座標値ファイルを
  次々と読み込み/描画して、グラフをアニメーションさせるVCSSLプログラムを同梱しました。
  各自時刻のグラフを連番の画像ファイルとして保存する事もできます。
  併せて、保存した連番画像をアニメーション再生するVCSSLプログラムも同梱しました。

・等高線のアルゴリズムの一部修正と品質改善

    等高線プロットと曲面プロット併用時の、両者の描画時の遠近判定を少し調整しました。

    また、等高線の描画処理を一部改修し、等高線がメッシュの境界線/点に完全に一致する箇所（以下の一覧）で、
    局所的に線が欠ける場合がある挙動を修正しました。

    ・等高線が、メッシュの隣接セルの境界に完全に一致し、かつ、その線が完全に水平（Z値が等しい）である箇所
    ・等高線の折れ線の頂点が、メッシュの格子点に完全に一致する箇所

    ※ ここでの「完全に一致」とは、浮動小数点数の全桁（有効桁数で15桁程度）が完全に一致する水準のものです。
       内部の等高線計算における演算誤差の入り方にも依存するため、条件を満たしても発現は偶発的な現象でした。

・フラットモードの挙動の一部修正と品質改善

    フラットオプションを有効にしてフラット描画を行っている際、画面左のバーでX/Y/Z軸の長さを
    ある程度以上に短くすると、その軸の目盛りが表示されなくなる挙動を修正しました。

    また、倍率やオフセット値をテキストフィールドに入力して「SET」ボタンを押した際に、
    スクロールバーの位置が自動で同期されるようになりました。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.16 になりました。

----------------------------------------------------------------------------------------------------
| 5.6.14
----------------------------------------------------------------------------------------------------

・OpenJDK 12 でのビルド

    本バージョンより、ビルドに OpenJDK 12 が使用されています。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.14 になりました。

・画面移動直後に反応が遅れる挙動の修正

    画面をマウスドラッグで移動した直後に、グラフ画面などを操作すると、
    グラフ描画などの反応が数秒間が遅れる挙動を修正しました。

・視点平行移動の速度を若干速めに調整

    最近の環境では、マウスの右ドラッグでの視点平行移動の速度（マウス移動量と始点移動量との比率）
    がやや遅めになってしまっていたため、従来よりも若干速めになるよう調整しました。

----------------------------------------------------------------------------------------------------
| 5.6.12
----------------------------------------------------------------------------------------------------

・OpenJDK 11 でのビルド

    本バージョンより、ビルドに OpenJDK 11 が使用されています。

・OpenJDKベースのJREのサポート

    OpenJDKのjlinkツールで生成したJREが利用可能になりました。
    詳細は ReadMe や「 jre 」フォルダ内のテキストをご参照ください。

・カラーバーの細かい目盛りを描画する機能の実装

    メニューバーの「編集」>「目盛りの設定」メニューから、カラーバーの目盛り区間数を指定する事で、
    カラーバーに細かい目盛りを付ける事が可能になりました。

・平面化オプション使用時に縦軸ラベルを倒す機能の実装

    平面化オプションにおいて、リニアングラフ2Dのように、
    縦軸のラベルを倒して描画する機能が選択可能になりました（デフォルトでは無効です）。

・VCSSLのアップデート

    標準サポートされているVCSSLのバージョンが 3.4.10 になりました。

・同梱のVCSSLプログラムを単純に

    メニューバーの「プログラム」メニューで開かれる同梱のVCSSLプログラムから、
    サンプル的なものを削って、ツールとして有用なもの（現時点では数式プロットツール）
    のみに絞り、さらにトップ階層に移動して名称も直しました。

・取扱説明書の改訂

    起動方法の部分や、その他細かい部分などを改訂しました。
