Triangle Fans

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

Triangle fan

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 the triangle with the color from its first vertex.

This illustration depicts a rendered triangle fan.

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 IDirect3DDevice9::DrawPrimitive to render this triangle fan.

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