「3次元変換」(hoge-氏作)解説 【 各クラス概要 】 ・Point − 3Dデータ。各オブジェクトの3Dデータを管理する ・Camera − カメラ。視点の管理・設定を行う ・Conv − 3D-2D変換機。各オブジェクトの3Dデータを2Dデータに変換する ・LineObj − ラインオブジェクト。画面上にある線のヤツ ・TestObj − テストオブジェクト。画面上にある四角いヤツ 以下、”3Dオブジェクト”とは Camera,LineObj,TestObj を指すものとします。; 各3Dオブジェクトは、開始時にPointを生成する。 これが、各3Dオブジェクトの座標を意味する。 //----- new Point()は馴染みがない形ですが、 基本的に普通のオブジェクトの生成と同じです。 但し、このオブジェクトは自律動作、画面上の表示を行いません。 配列(new Array())と似たようなものとお考えください。 //------ TestObjは毎フレーム以下の動作を行います。 1.convのto2D(pos)を実行する。   この結果、このオブジェクトの3Dデータを2Dに変換したものが、convの変数x,yに、   その奥行きに応じた拡大率がscaleに格納される 2.変換した結果が画面内なら、convの変数x,y,scaleを取得し、表示を行う。   画面内でなければ、このオブジェクトの表示を消す(setVisible(0);)。 LineObjは扱う座標が2つに増えただけ(始点と終点)で、基本的には同じ。 convのto2D(pt)について、 これは、指定のpointオブジェクト(pt)の3Dデータを、2Dデータに変換するための関数です。 以下のように動作します。 1.convCamera(pt)を呼び出す   この関数はptをカメラ視点から見た座標に変換し、pに格納する   ○p.set(pt).sub(v).rollXZ(angle); の解説    作業用pointオブジェクト(p)に、ptをコピー(set)し、    そのコピーした結果のpから、カメラ座標(v)を引き、    その引いた結果のpを、Y軸を中心にX,Zをangle度回転させる 2.cameraTo2D(pt)で、pに格納されている3Dデータを、画面上の座標 x,y に変換し、   変換後のデータを、変数x,y,scaleにかくのうする 大体こんな感じ。 constructorには、任意の名前を設定可能で、 Point(x,y,z)はその名前です。(関数functionと同じ) (constructorは、クラスと同じ名前にするのが通例のようです) Point(x,y,z)のzとは、3次元(横,縦,奥行き)の内の1つを表す数値です。