Platform SDK: DirectX

ステップ 1.2 : 円錐を準備する

[Visual Basic]

ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic チュートリアル」を参照すること。

[C++]

円錐のジオメトリの準備には、位置ベクトルおよび法線ベクトルを宣言するだけでよい。このため、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 : 立方体を準備する」で説明する。