A triangle fan is similar to a triangle strip, except that all the triangles share one vertex. This is 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 the triangle with the color from its first 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 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 );