Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic チュートリアル」を参照すること。
円錐のジオメトリの準備には、位置ベクトルおよび法線ベクトルを宣言するだけでよい。このため、DrawPrims アプリケーションの円錐オブジェクトは、次のプログラマ定義構造で定義される。
struct MyFlexibleVertex { D3DVECTOR vPosition; D3DVECTOR vNormal; };
次のコードで、円錐の先端を定義する。
g_pvCone[0].vPosition = D3DVECTOR( 0, CONE_HEIGHT/2, 0 ); g_pvCone[0].vNormal = Normalize( D3DVECTOR( 0, 1, 0 ) );
次の三角関数で、円錐の各側面を計算する。
for( i=0; i<NUM_CONE_SIDES; i++ ) { FLOAT x = (FLOAT)sin( 2*g_PI*i/(NUM_CONE_SIDES-1) ); FLOAT y = -CONE_HEIGHT/2; FLOAT z = (FLOAT)cos( 2*g_PI*i/(NUM_CONE_SIDES-1) ); g_pvCone[i+1].vPosition = CONE_RADIUS * D3DVECTOR( x, y, z );
次のコードで、円錐の各側面の位置ベクトルを計算する。
g_pvCone[i+1].vNormal = Normalize( D3DVECTOR( x, 0.5f, z ) ); }
ジオメトリ空間に壁セグメントと円錐を定義したら、次は立方体を準備する。この処理については、「ステップ 1.3 : 立方体を準備する」で説明する。