(LiveGraphics3Dを用いた動くJavaアプレット) 2006.10.29

 

今回はGIFアニメではなく,Mathematicaで描き出したものが,Javaを利用して,ブラウザ上でインタラクティブに操作できるようになった。
つまり,今まで見るだけだったアニメが自分の手で動かせることとなった。(私のHPでは初の試み)

 

興味深い3次元立体であるが,なんとこの図はマウスで触ると,回転させ,裏側まで見ることが出来る。

 

(操作方法)

左マウスドラッグ:画像内の軸のまわりの回転
左マウスをドラッグしながら離す:画像内の軸のまわりのスピン回転を続ける
右マウス垂直ドラッグ:グラフィックスの部分分解

SHIFTキー+垂直ドラッグ:ズーム
SHIFTキー+水平ドラッグ:画像に垂直な軸の周りの回転

CONTROLキー+垂直ドラッグ:焦点距離の変化
CONTROLキー+水平ドラッグ:ステレオ効果の長さの変化

”f”キー:フレーム表示の切り替え
”s”キー:単一画像とステレオ画像の切り替え ←←←これお勧め!立体像に見えます!

”x”キー     :x軸正方向への移動
SHIFT+”x”キー:x軸負方向への移動
”y”キー     :y軸正方向への移動
SHIFT+”y”キー:y軸負方向への移動
”z”キー     :z軸正方向への移動
SHIFT+”z”キー:z軸負方向への移動

HOMEキー:元画像の復元

(解説)

この技術は,LiveGraphics3Dと呼ばれる。

これはドイツのMartin Kraus氏が作成したJavaアプレットである。
Mathematicaにより作成した3次元グラフィックスをWeb上に表示し,インタラクティブに縮小,拡大,回転,視点の移動,ステレオ表示を可能とする。
このJavaアプレットは非商用に公開されたフリーソフトウェアである。このclassを用いることで,Javaアプレットの知識を持たなくても,またMathematicaを持たなくても,その画像を特殊なソフトウェアをインストールする必要なく,見ることが出来,その操作も簡単である。
同様な機能を持ったソフトウェアにVRMLやJavaViewがある。

図形そのものは,三角比をごちゃごちゃといじり,パラメータを変え,三次元的に回転させて面白そうな図形を作っただけで,深い意味は無い。あえて言うなら,リサージュ曲線(リサジュー曲線とも言う)は,xy平面上でパラメータを変えつつ描く美しい2次元のものが有名だが,それを3次元化して,更に面を構成させた3次元リサージュ曲面(?そんな言葉ないよなぁ?)とも言えるかも知れない。

ちなみに,電気通信大学の校章は,リサジュー図形なのだ。由来は自分で調べてね。

 

もしも見えない場合

Javaが有効になっていない可能性がある。以下をチェックするとよい。
Internet Explorerの場合,情報バーでブロックされているコンテンツを表示する必要がある。
危険性のあるアクティブコンテンツ・・・と出るが,命に別状は無い(笑)ので実行する。
ツールのインターネットオプションの詳細設定から,「Javaコンソ−ルの使用」にチェックを入れる。

(Mathematica上での準備)
  
ちなみに私の持っているMathematicaはVer.3.0である。

これは製作者として必要な作業で,見るだけの人には何も関係のない私の備忘録程度である。

その1

3Dデータをテキストとしてを描き出す(Graphics3Dのフォームがテキストファイルで必要である)ために,次の関数

Live3d[g_] := NumberForm[InputForm[N[g]], 4];

を定義しておく。

その2

次に,Graphic3Dオブジェクトを作成する。
例えば,
a= ParametricPlot3D[{Sin[t]Cos[u], Sin[t] Cos[2u], Sin[t] Sin[2u]},
{t, -Pi/2, Pi/2}, {u, 0, 2Pi},Ticks -> None]
として,Graphic3Dオブジェクト”a”を作成する。

その3

次の命令により

Live3d[a]

aからNumberFormが書き出される。

その4

NumberFormをコピーペーストして,メモ帳などでテキストファイル”a.txt”を作成する。
ちなみに今回の上の元ファイルは20061029gr.txtのこれである。

 

右画像参照

(HTMLページ作成上の準備)

これは製作者として必要な作業で,見るだけの人は何もダウンロードする必要など無い,私の備忘録程度である。

Javaのアプレットをダウンロードしておく。Martin Kraus氏によるホームページ:LiveGraphics3D Homepage
にアクセスし,download LiveGraphics3D 1.90をクリックしてlive.jar(106061 bytes)をダウンロードする。
live.jarはJava1.1 appletであり,必須のファイルである。

 (リンク先) http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/download.html

HTMLページの作成は,本体であるHTMLファイルと,先ほど作成したデータのテキストファイルであるa.txtと,ダウンロードしたlive.jarの最低3つが必要である。

例えば,下記のようなsample.htmlを作成し,適当な作業ディレクトリーに置く。

<HTML>
<APPLET ARCHIVE="live.jar" CODE="Live.class"
WIDTH=600 HEIGHT=600 ALIGN=ABSMIDDLE>
<PARAM NAME=BGCOLOR VALUE=#FFFFFF>
<PARAM NAME=MAGNIFICATION VALUE=1.>
<PARAM NAME=INPUT_FILE VALUE= "a.txt">
</APPLET>
</HTML>

ファイル名”a.txt”は先ほどMathematicaで作成した適当なInputFormのテキストファイルである。

そして,これら,sample.htm と a.txt と live.jar の3つのファイルを同一フォルダに置き,FTP転送しておくと出来上がり。

 

(エピローグ)

数日前に風邪をひいてしまった様で,喉が痛く,だるくて仕方ない。暇つぶしに以前から気になっていたインタラクティブな3Dを作ろうかと言う気になり,一気に書き上げてしまった。風邪のほうも気合?に押されたのか,治まってきた気がする。

今までのHPではGIFアニメ化ばかりしていたのだが,マシンスペックが上がり,(これは自分のマシンもそうであり,普通にこれを見ていらっしゃる方のスペック平均値もあがると言う,両方の意味あり)javaも無意識に使えるんじゃないかな?これからひょっとすると,java中心?って気配を感じたのでこうなりました。

ご意見ご感想などお聞かせいただけると幸いです。