Microsoft DirectX 8.0 (Visual Basic)

3D トランスフォームについて

3D グラフィックスを処理するアプリケーションでは、ジオメトリ トランスフォームを使用して次のことができる。

4 × 4 行列を使用すると、任意のポイントを別のポイントにトランスフォームできる。次の例では、行列を使用してポイント (x, y, z) を再度トランスフォームし、新しいポイント (x', y', z') を生成する。

(x, y, z) に対する次の操作と行列を実行してポイント (x', y', z') を生成する。

最も一般的なトランスフォームは、平行移動、回転、およびスケーリングである。これらの効果を生成する行列を組み合わせて単一の行列を作成し、いくつかのトランスフォームを同時に計算できる。たとえば、一連の点を平行移動して回転させる単一の行列を作成できる。詳細については、「行列連結」を参照すること。

行列は、行と列の順序で記述する。頂点を各軸に対して均一にスケーリングする (一様なスケーリングと呼ばれる) 行列は、数学的には次のように表記される。

Microsoft® Visual Basic® の場合、Microsoft Direct3D® では、D3DMATRIX 型を使用して 2 次元配列として宣言された行列を使用する。次の例は、一様なスケーリングを行う行列として機能するように D3DMATRIX 型を初期化する方法を示している。

' この例では、s は Single 型の変数である

Dim ScaleMatrix As D3DMATRIX

    With ScaleMatrix
        .m11 = s
        .m22 = s
        .m33 = s
        .m44 = 1
    End With