ГОТОВЫЕ ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ДИССЕРТАЦИИ И РЕФЕРАТЫ

Разработка приложения для отображения пространственных фигур

Автор ruvik07
Вуз (город) БНТУ (Минск)
Количество страниц 27
Год сдачи 2006
Стоимость (руб.) 1500
Содержание Введение 4
1. Математическая формулировка задачи 5
2. Описание программы 6
2.1 Описание набора компонент DelphiX 6
2.2 Интерфейс DirectDraw 6
2.2.1 Видео режимы 7
2.3 Система координат Direct3DRM®. (Reatined Mode) 8
2.4 COM 9
2.6 Руководство программиста 11
2.6.1 Иерархическая структура состава программных компонентов 11
2.6.2 Описание методов DelphiX 11
2.6.3 Описание класса TmainForm 12
2.6.4 Описание класса TDXGraph 13
2.6.5 Описание динамической библиотеки ColorDLL 13
2.7 Руководство пользователя 14
3. Методика испытаний 16
Заключение 17
Список использованной литературы 18
Приложение. Листинг программы 19
1. Листинг модуля MainUnit 19
Список литературы 1. Фаронов В.В. Delphi 5. Учебный курс.-М.:»Нолидж», 1998.-400с.
2. Сван, Том. Delphi 4. Библия разработчика: Пер. с англ. –К; М.; СПб.: Диалектика, 1998. – 672 с.
3. Марко Кэнту. Delphi 5 для профессионалов.-СПб.: Питер. 2001. – 944 с.
4. Бобровский С. Delphi 5: учебный курс- СПб: Издательство «Питер», 2000.- 640с.
5. А.М.Епанешников, В.А.Епанешников Программирование в среде Delphi.-М.:»Диалог МИФИ», 1998.
6. Фурунжиев Р.И. Вычислительная техника и ее применение. 3-изд. -Мн.: Выш.шк. 1986. - 462 с.
7. Л. Аммерал Принципы программирования в машинной графике. Пер.с англ.-М.:”Сол Систем”, 1992.-224с.
8. Программа Delphi World 6.0 Акулов Николай.
Выдержка из работы 2.6.2 Описание методов DelphiX

DXDrawInitializeSurface
Этот метод запускается при инициализации компонента TDXDraw. Следует указать, что DXDraw инкапсулирует D3D, D3D2, D3Ddevice, D3DDevice2, D3DRM, D3DRM2, D3DRMDevice, D3DRMDevice2, DDraw - ни что иное, как соответствующие интерфейсы DirectX. Обратите внимание на DXDraw.D3DRMDevice2.SetRenderMode (D3DRMRENDERMODE_BLENDEDTRANSPARENCY or D3DRMRENDERMODE_ SORTEDTRANSPARENCY). Эти два флага установлены вот для чего - если у нас два треугольника находятся один под другим и оба видны (т.е. вершины у них по часовой) нужно их сперва отсортировать по координате Z, чтоб понять, кто кого загораживает. Включает такую сортировку флаг, названный D3DRMRENDERMODE_SORTED TRANSPARENCY.
Наиболее важным является метод
DXDrawInitialize
Здесь сначала создаются два фрейма - Mesh и Light, для нашего видимого объекта и для лампочки, его освещающей.
MeshFrame.SetRotation(DXDraw.Scene, 0.0, 10.0, 0.0, Scale)
(первые три цифры - координаты вектора вращения, последний параметр - угол полворота) . Отличие между методами SetRotation и AddRotation в том, что AddRotation поворачивает объект только один раз, а SetRotation - заставляет его поворачиваться на указанный угол при каждом следующей итерации (with every render tick).
Потом создается т.н. MeshBuilder - специальный объект, инкапсулирующий методы для добавления к нему граней.
Этот обьект может быть загружен из файла (и естественно сохранен в файл). По традиции файлы имеют расширение X. В самом же деле, задавать координаты каждого треугольника вручную очень трудоемко. В программе Torus3D координаты задаются математически при помощи соответствующих формул.
MeshBuilder.Scale(3, 3, 3) – применяем для увеличения, допустим, в три раза по всем координатам.