2000.07.12 KPC 情報技術科 関谷
第9回からは、テキストのJavaプログラムでの例題のファイル(サーバにコピーしたもの)を紹介した。index.htmlファイルで目次ページになっているので、Javaでの実行画面例とjavaソースリストが見れる。今回までは、これを参照しながら、学習していく。
Java2Dとは、AWTの機能を向上させて、とくにグラフィックスやテキスト、画像を、より効果的に表現し、2Dグラフィックスや2Dイメージ操作を向上させたもので、Java2のコアAPIに組み込まれている。
サンプルのプログラムの動作を確認したら、ソースプログラムを改造して、タイトル(プログラム名や作成者名,年月日など)を表示したり、ファイル名を表示したりして、何をどうしているのかを説明するものを追加すること。
Rドライブ(ファイルサーバ)の\Archive\java2igpフォルダに、G1.javaからG23.javaまでの例(およびclass)を、実行すると共に、参考にして改造やappletへの変更をする。
Java2Dのプログラム機能とその構造を考察すること。(アフィン変換など、便利に使える)
そして、第8章のJavaプログラムの改造をする。あるいは、逆の順序でも良いが。
アプリケーションからアプレットプログラムへの変換は、少し,面倒ではあるが、慣れて欲しい。
(アプリケーションとアプレットとを共用にしなければ、簡単になる。)
皆さんのWebページのアップロードが未完であるので、残念である。今日は、Java3Dを最初に学習するが、アプレットへの変更課題はなしとする。集中実習まえの最後の週なので、これまでの整理をしてほしい。
Java3Dは、3次元グラフィックスや3次元アプレット、3次元ロゴを作成し、仮想空間を構築するためのAPIである。 Java2DはJava2のコアAPIに組み込まれていたが、Java3Dは拡張APIとして提供されている。
(注)Java3Dの実行環境など:(Java 3DTM 1.2 API )Java3DのWindows98版java3d1.2をダウンロードして、ファイルサーバのRドライブのArchive\Java3Dフォルダにコピーしている。それの自己解凍を同じくR:\jdk1.2.2フォルダにしている。ここの環境を使って、コンパイルなどを行う。
なお、この環境を使って、コンパイルjavacを実行済みのGraphicsI?.classファイルも、R:Archive\java2igpフォルダにコピーしている。従って、R:\jdk1.2.2へのpathを設定すれば、Java3Dのアプリケーションが実行javaできる。
もし、javaで実行しても、エラーになるときには、ランタイム環境R:\jdk1.2.2フォルダのJavaTM 2 Runtime Environment の Win32 版(jre-1_2_2_005-win-i.exe)
をダブルクリックして、ローカルのc:\にインストールのこと。
アプレットに変換しても、ブラウザのJava Plug-inを使うようにhtmlファイルを変換したりする必要がある。詳細はJavaTM Runtime Environmentおよび Java Plug-inのダウンロードなどを参照のこと。
VRMLに似ているが、Javaでは直接的に制御できる。
標準的な低水準のAPI(OpenGL, Direct3D, QuickDraw3Dなど)を参考にして、シーン・グラフを基礎とした技術である。シーン・グラフとは、3次元空間での全幾何図形や属性、視点情報(ノードと呼ばれる)を含み、仮想宇宙を完全に記述できるように構成されたデータベースである。Java3Dは、木構造のノードに基づいたシーン・グラフを形成する。
画面のイメージとソースリストは、ファイルサーバR:\Archiveにあるjava2igpフォルダのindex.htmlを開けば、ブラウザで一覧できる。
同じフォルダにソース(*.java)とバイトコード(*.class)を用意している。アプリケーションプログラムの実行(対話処理)は、java クラス名である。
マウスの1ボタン(左)で回転、3ボタン(右)で並進、2ボタン(中央)で遠近ができる。ただし、マウスによっては、2が無い。
マウスの2ボタン(中央)で遠近ができる。ただし、マウスによっては、2が無いので、そのマウスでは遠近が出来ない。
テキスト10章の解説を読み、例題を(コンパイルし、)実行してみる。
それらの中で、皆さんの興味を持った例を解析し、改造しなさい。
レポートには、それらの中から、考察を行い、ハイパーリンクのこと。
今回分Java3Dアプリケーションプログラムのappletへの変更は、元々Appletから派生させたクラスGraphicsI?にmain()メソッドを使っているので、そのメソッドmain()を削除し、コンストラクタGraphicsI?()をメソッドvoid init()に変更することで簡単にできる。
アプレットプログラムの起動は、htmlファイルを作り、appletviewerで実行できる。しかし、ブラウザIE5.0ではエラー(exception:java.lang.ClassNotFoundException:com.sun.j3d.utils.universe.SimpleUniverse)になる。
現在のブラウザでは、前述したようにサンのPlug-inを使う必要があり、htmlの変換とJREのインストールが必要である。(ブラウザのPlug-inについては、関谷はテスト中。)