Треугольники в виде веера подбны списку треугольников с той лишь разницей, что все треугольники имеют одну общую вершину, как показано ниже на рисунке:
Система использует вершины v2, v3, и v1, чтобы нарисовать первый треугольник, v3, v4, и v1 - второй треугольник, v4, v5, и v1 - третий треугольник и так далее. Когда применяют плоскую закраску, система закрашивает треугольник начиная с первой вершины.
Ниже показан треугольник, вершины которого расположены в виде веера:
Ниже показан код, чтобы создать такой треугольник:
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}, };
Ниже приведен пример, как использовать функцию IDirect3DDevice8::DrawPrimitive, чтобы отобразить такой треугольник:
// Предполагается, что d3dDevice уже инициализирован // указатель на интерфейс IDirect3DDevice8 d3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 4 );