Microsoft DirectX 8.1 (C++)

Triangle Fans

A triangle fan is similar to a triangle strip, except that all the triangles share one vertex, as shown in the following illustration.

The system uses vertices v2, v3, and v1 to draw the first triangle, v3, v4, and v1 to draw the second triangle, v4, v5, and v1 to draw the third triangle, and so on. When flat shading is enabled, the system shades a triangle with the color from its second vertex.

This illustration depicts a rendered triangle fan.

The following code shows how to create vertices for this triangle fan.

struct CUSTOMVERTEX
{
    float x,y,z;
};

CUSTOMVERTEX Vertices[] = 
{
    { 0.0, 0.0, 0.0},
    {-5.0, 5.0, 0.0},
    {-3.0,  7.0, 0.0},
    { 0.0, 10.0, 0.0},
    { 3.0,  7.0, 0.0},
    { 5.0,  5.0, 0.0},
};

The code example below shows how to use IDirect3DDevice8::DrawPrimitive to render this triangle fan.

//
// It is assumed that d3dDevice is a valid
// pointer to a IDirect3DDevice8 interface.
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 4 );