Microsoft DirectX 8.0 (Visual Basic)

回転

ここでは、左手座標系のトランスフォームについて説明する。したがって、これまでのトランスフォーム行列とは異なる場合もある。詳細については、「3D 座標系」を参照すること。

次のトランスフォームは、ポイント (x, y, z) を x 軸 を中心に回転して新しいポイント (x', y', z') を生成する。

次のトランスフォームは、ポイントを y 軸を中心に回転する。

次のトランスフォームは、ポイントを z 軸を中心に回転する。

これらの行列の例では、ギリシャ文字シータ (θ) は、回転角度をラジアン単位で表している。角度は、回転軸を中心にして原点方向を向いた時計回りで測定したものである。

Microsoft® Visual Basic® アプリケーションでは、Direct3DX ユーティリティ ライブラリによって提供される D3DXMatrixRotationX 関数、D3DXMatrixRotationY 関数、および D3DXMatrixRotationZ 関数を使って回転行列を作成する。

たとえば、x 軸を中心に回転する行列を手動で作成する場合は、次のようなソース コードになる。

Sub CreateXRotation(ret As D3DMATRIX, rads As Single)
    Dim cosine As Single
    Dim sine As Single
    cosine = Cos(rads)
    sine = Sin(rads)
    
    D3DXMatrixIdentity ret  ' Direct3DX によって実装される。
    
    ret.m22 = cosine
    ret.m23 = sine
    ret.m32 = -sine
    ret.m33 = cosine
End Sub