Домашняя страница Урок1 - Инициализация Direct3D Урок2 - Очистка памяти Урок3 - Функция воспроизведения Урок4 - Примитивы Урок5 - Точки Урок6 - Отрезки Урок7 - Треугольники Ссылки

Урок7 - Треугольники

Если первым аргументом метода DrawPrimitive указана константа D3DPT_TRIANGLELIST, то каждая тройка вершин, считываемых из потока, задает три вершины независимого треугольника.

Разберем рассматриваемый примитив на примере простейшего приложения на тему построения треугольника. При работе программы на экране вращается треугольник красного цвета.

Простейший пример на построение треугольника

Треугольник является базовой фигурой для построений в Direct3D. Квадраты, прямоугольники и все остальные, в том числе и пространственные, фигуры рисуются из треугольников.

Группе связанных треугольников соответствует флаг D3DPT_TRIANGLESTRIP. Первые три вершины задают первый треугольник, вторая, третья и четвертая определяют второй треугольник, третья, четвертая и пятая - третий и т.д. получается лента соприкасающихся треугольников.

Использование связанных треугольников - самый экономный и эффективный способ построения. К примеру, если для рисования прямоугольника независимыми треугольниками потребуется задать координаты шести точек, то при использовании связанных треугольников достаточно задать четыре точки.

Последний примитив, связанный с флагом D3DPT_TRIANGLEFAN, также предназначен для постоения группы связанных треугольников, но данные потока трактуются немного иначе, чем в предыдущем случае: вторая третья и первая вершины определяют первый треугольник, третья, четвертая и первая ассоциированы со вторым треугольником, и т.д. То есть треугольники связаны, подобно раскрою зонтика или веера. Первая вершина потока ассоциирована с центральной точкой. По такой схеме удобно строить конусы и пирамиды, а для плоскостных построений - выпуклые многоугольники, эллипсы и окружности.

На этом материал этого сайта заканчивается. Надеюсь, что вы что-то для себя уяснили. Если у вас есть какие-нибудь вопросы или предложения отсылайте их сюда. Спасибо за внимание.


Полный исходный текст примера (ex5.pas, 7Kb)
Откомпилированное приложение (example5.zip, 168Kb)