Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「Direct3D 直接モードの C/C++ チュートリアル」を参照すること。
円錐のジオメトリは、位置ベクトルと法線ベクトルを宣言するだけで準備できる。サンプル DrawPrims では、次のプログラマ定義型によって円錐オブジェクトを定義する。
Private Type MyFlexibleVertex vPosition As D3DVECTOR vNormal As D3DVECTOR End Type
円錐の先端は、次のコードで定義できる。
Dim vectorNorm As D3DVECTOR g_vCone(0).vPosition = MakeVector(0, CONE_HEIGHT / 2, 0) vectorNorm = MakeVector(0, 1, 0) Call g_dx.vectorNormalize(vectorNorm) g_vCone(0).vNormal = vectorNorm
円錐の各面は、次の三角関数で計算できる。
For i = 0 To NUM_CONE_SIDES - 1 x = Sin(2 * pi * i / (NUM_CONE_SIDES - 1)) y = -CONE_HEIGHT / 2 z = Cos(2 * pi * i / (NUM_CONE_SIDES - 1)) g_vCone(i + 1).vPosition = MakeVector(x * CONE_RADIUS, y * CONE_RADIUS, z * CONE_RADIUS)
円錐の各面の位置ベクトルは、次のコードで計算できる。
vectorNorm = MakeVector(x, 0.5, z) Call g_dx.vectorNormalize(vectorNorm) g_vCone(i + 1).vNormal = vectorNorm Next i
ジオメトリ空間で壁セグメントと円錐を定義したら、立方体の準備に進むことができる。この処理については、「ステップ 1.3 : 立方体を準備する」で説明する。