FC2/ JRANK/ bloog/ ranQ/ 人気blogランキング
三次元頂点
三次元座標クラス Point3D と、三次元変換行列クラス Matrix3D を定義しました。
いよいよこの二つを使って三次元空間上で物体がグリグリ動くサンプルを作りたいと思います。
とその前に、もう一つ別のクラスを整備しますよ。 頂点についてのクラスです。
「三次元座標」クラス作ったじゃん。何だよ頂点クラスって。同じだろーが。
と、罵る前にまぁ人の話を聞いてくれ給え。
三次元変換行列(9)
以前、三次元変換行列で最低限必要なメソッドは以下の五つであると書きました。
- 平行移動(translate)
- 拡大縮小(scale)
- 軸回転(rotateAxis)
- 行列合成(concat)
- 行列複製(clone)
すまん、ありゃウソだ(おい)。
三次元変換行列(7)
メソッドのコードの続き。
前回は座標軸回転(rotateAxis)についてでした。 残りの移動系メソッドの話に進みます。
三次元変換行列(6)
メソッドのコードの続き。
前回は行列合成(concat)と複製(clone)についてでした。 残りの各種移動系メソッドについて見ていきます。
三次元変換行列(5)出直し
次にメソッドのコードです。
最低限必要なメソッドは、平行移動(translate)、拡大縮小(scale)、座標軸回転(rotateAxis)、行列合成(concat)、そして行列合成に関連して複製(clone)。以上五つ。 これは変わりません。
各メソッドコードの提示ですが、リライト版ではちょっと変えて、まずは行列合成(concat)から説明します。
三次元変換行列(4)出直し
今まで作成していた三次元変換行列クラスは、行列プロパティを二次元配列で実装しようとしていました(「三次元変換行列」(4))。
前回のエントリーで、Array でのアクセスの遅さはヤバげという情報を得、二次元配列による行列実装は考え直さなアカンか? でもこのまま目をつぶって先に行くよ、ということで一歩進みました(「三次元変換行列」(5))。
今日、前回見た Array は遅いという記事の検証をなさっているエントリーを発見。 そちらではベンチマークのソースも公開されていたので、それを拝借して自分の三次元変換行列クラスの速度検証をしてみました。検証は以下の2パターンについて。
- 行列を二次元配列で定義(今はこっち)
- 行列の各成分を個別で定義
お話しにならん結果が出ました。



