C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 6 - Рисуем простейшие фигурки / Direct3D / Microsoft DirectX

Шаг 6 - Рисуем простейшие фигурки

Продолжим наше рисование... Здесь мы отобразим точки, линии и т.д.

Для этого мы добавим в g_Vertices[] сначала координаты точки.

{  30.0f,  30.0f, 0.5f, 1.0f, 0xffffff00, },

Дальше изменим функцию:

p_d3d_Device->CreateVertexBuffer (7*sizeof(CUSTOMVERTEX), 
	0, 
	D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, 
	&p_VertexBuffer);

т.к. сейчас уже распределяем память под семь вершин.

В RenderScene() перед EndScene добавьте:

p_d3d_Device->DrawPrimitive (D3DPT_POINTLIST, 6, 1);

т.е. координата находится на седьмом месте в массиве (массив начинает отсчет с 0) и использовать только одну вершину. Компилируем и запускаем. Появится желтая точка слева сверху от первого треугольника.

Теперь добавим синию линию. Снова в g_Vertices[] добавляем вершины:

{ 100.0f,  30.0f, 0.5f, 1.0f, 0x000000ff, },
{ 500.0f,  30.0f, 0.5f, 1.0f, 0x000000ff, },

В CreateVertexBuffer() укажим теперь вместо 7 значение 9. И перед EndScene пишем:

p_d3d_Device->DrawPrimitive (D3DPT_LINELIST, 7, 1);

Седьмое и восьмое значение в массиве отданы прорисовке линии, рисуем только одну линию.

Нарисуем ломанную линию, для этого пишем координаты вершин:

{  10.0f, 250.0f, 0.5f, 1.0f, 0xffffff00, },
{  80.0f, 300.0f, 0.5f, 1.0f, 0xffffff00, },
{ 160.0f, 300.0f, 0.5f, 1.0f, 0x000000ff, },
{ 200.0f, 250.0f, 0.5f, 1.0f, 0x000000ff, },

В CreateVertexBuffer указываем теперь 13 и рисуем:

p_d3d_Device->DrawPrimitive (D3DPT_LINESTRIP, 9, 3);

Первые две вершины используются для одной линии, и прибавляя по одной вершине рисуется другая линия, поэтому у нас поставлена цифра 3, т.е. нарисовать три линии. В трех линиях содержится 4 вершины.

Общая картина выглядит так:

6_1.jpg (21274 b)

Можно также нарисовать D3DPT_TRIANGLESTRIP и D3DPT_TRIANGLEFAN, но это я Вам оставлю как для домашнего задания :). Для более полной информации смотрите "Шаг 33 - Описание перечисляемого типа D3DPRIMITIVETYPE".


Загрузить проект | | |
Автор Хавов Евгений Валерьевич.
[AD]