Скачать 349.08 Kb.
|
template class ANumericAttr template class ANumericAttr … В этом классе описаны также границы, за рамки которых значения атрибута выходить не могут, если атрибут считается ограниченным. С помощью такого атрибута реализуется, например, свойство прозрачности в классе поверхностей (AMesh) . Обращение к данным реализовано через указатель. Если эти данные создаются самим атрибутом, то они принадлежат только этому атрибуту и только им удаляются. Если же атрибут использует данные другого объекта, то удаление атрибута не приводит к удалению данных. Соответственно, имеются методы для создания или ссылки на данные.
Используется в основном для именования объектов-узлов. Аналогично числовому атрибуту есть возможность создания собственной строки или ссылки на внешнюю строку.
Данный класс применяется для связывания разных объектов друг с другом. Из узлов строится граф, с помощью которого в свою очередь формируется множественная иерархия зависимостей объектов. В состав класса входят: указатель на атрибут-имя, список связей “слева”, список связей “справа ”, список атрибутов, дополнительная информация. Имя используется для идентификации узла пользователем, значение не считается уникальным. Наличие 2-х списков связей (списки указателей на другие узлы) позволяет строить ориентированный граф связей. Направление связей задает отношение включения одного объекта в другой (принадлежность). Связи “справа” указывают на объекты, которые принадлежат данному. Связи “слева” указывают на объекты, к которым принадлежит данный. Такое разделение является условным, и в разных ситуациях его можно интерпретировать по-своему. Как правило, если один узел связан с другим, то у 1-го есть связь “справа ”, а у 2-го присутствует связь “слева”. Если обратная связь (в данном случае “левая”) отсутствует, то 2-й объект фактически не имеет информации о присутствии первого объекта. И если будет проводиться поиск объектов “владельцев” из второго объекта по связям, первый указан не будет. В списках связей объектов дублированные записи исключены. Два объекта не могут иметь более одной (непосредственной) связи. Рис. . Пример связей узлов. В списке атрибутов хранятся указатели на базовый класс AAttr. Дополнительная информация используется для алгоритма поиска в графе. Виртуальный метод GetType возвращает at_Node. Метод Connect соединяет узел, вызвавший метод с узлом, указанным в параметре. В результате строится две связи – прямая и обратная. Если в параметрах указано, что связывать “справа”/ “слева”, то прямая связь будет R/L-связью, тогда как обратная – L/R. Метод AddNode по смыслу работает также как и Connect, за тем исключением, что обратной связи не создается. Обратные действия выполняют методы Disconnect, RemoveNode. Метод TracepNodeList используется для поиска в графе. В результате выводит информацию необходимую для построения дерева поиска. Данный метод работает в 2-х режимах: построение дерева, в котором все узлы уникальны, построения дерева, в котором узлы повторяются, что является результатом зависимости одного объекта от нескольких (рис. 4). Рис. . Пример связей до вызова метода построения дерева. Рис. . Результат работы метода с использованием 2-способа. Таким образом, множественная иерархия реализуется с помощью одного ориентированного графа, для которого реализованы алгоритмы разбиения его на деревья, составляющие эту иерархию. Помимо этих функций в ANode есть методы добавления, удаления поиска атрибутов, вывода списков атрибутов и связей, передачи атрибутов другому объекту и т.д.
Данный класс в иерархии используется как основа всех 3-х мерных объектов. Т.е. объектов, для которых применимы такие операции как поворот в 3-х мерном пространстве, перемещение, масштабирование. В данном классе содержится указатель на атрибут трансформации (подробнее о нем см. далее), который содержит в себе операции поворота, перемещения и т.д.
Объекты этого класса применяются для визуализации поверхностей. В себе содержат указатели на атрибуты цвета поверхности, прозрачности, видимости, указатель на множественный атрибут-массив полигонов. Кроме того в этих объектах содержатся указатели на индексный буфер и три вершинных буфера, информация о числе вершин и индексов. Первый вершинный буфер содержит информацию о координатах вершин, второй – информацию о нормалях, третий – о цвете вершин (об индексном и вершинном буфере см. далее, в описании класса ARender). Основные методы этого класса это инициализация индексного буфера и всех вершинных, а также заполнение информации о примитивах. Примитивом в программе считается структура, содержащая в себе номер начального и номер конечного индекса, тип, определяющий как строить этот примитив. Например, примитив может строиться из треугольников следующим образом. Каждые три вершины задают треугольник. В итоге на построение такого полигона потребуется 3*n вершин (n число треугольников). Второй способ: каждая новая вершина и предыдущее ребро формирует треугольник. Третий: фиксируется первая вершина, треугольники строятся на основе нее и двух последовательных вершин, отличных от первой. Способы приведены на рис. 6, рис.7, рис.8. Рис. . Первый способ построения. Рис. . Второй способ. Рис. . Третий способ.
Этот класс применяется для визуализации линий. Структура является схожей с классом AMesh. Построение линии проводится 2-мя способами (рис.9). Рис. . Способы построения линии. Класс ARender Этот класс является основой всей визуализации в программе. Именно он осуществляет рендеринг 3-х мерных объектов. Настройка процесса визуализации проводится также в нем. Рассмотрим основные составляющие данного класса:
Список литературы |
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических... Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению... | Реферат Флягина Т. А. Проблемы разработки многооконных интерфейсов,... Флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук | ||
Литература Уросов А. П. Разработка методик визуализации для представления работы параллельных программ, квалификационная работа на степень бакалавра... | Квалификационной работы на факультете математики и компьютерных наук В соответствии с действующими государственными образовательными стандартами выпускная квалификационная работа по специальности «Математика»... | ||
Диссертация на степень магистра наук по направлению «Математика, компьютерные науки» Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Дипломная работа по направлению Математика. Прикладная математика студента гр. Мт 505 Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Программа дисциплины Современные методы принятия решений для направления... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400.... | Программа дисциплины «Герменевтика» для направления 010400. 68 «Прикладная... Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки 010400. 68 "Прикладная... | ||
Решение проблем, при реализации метафоры манипуляции «Волшебный скальпель» Попова А. В. Использование визуальных манипуляционных метафор при разработке информационной системы, квалификационная работа на степень... | Программа дисциплины «История» для направления 231300. 62 и 230700.... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 231300.... | ||
1 Нормативные документы для разработки ооп впо по направлению подготовки... Общая характеристика вузовской основной образовательной программы высшего профессионального образования по направлению подготовки... | Реферат Тычинин И. А. Разработка приложения для портативных устройств... Тычинин И. А. Разработка приложения для портативных устройств с использованием qt framework, квалификационная работа на степень бакалавра... | ||
Программа по формированию навыков безопасного поведения на дорогах... Программа предназначена для преподавателей, ведущих данную дисциплину и студентов направлений 233400. 62 «Информационные системы... | Основная образовательная программа (ооп) бакалавриата, реализуемая... Нормативные документы для разработки ооп бакалавриата по направлению подготовки «Прикладная математика и информатика» | ||
Программа дисциплины Архитектура ЭВМ для направления 010400. 68 «Прикладная... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 010400.... | Об организации и проведении Второй международной научной школы для... «Прикладные математика и физика: от фундаментальных исследований к инновациям», и в её рамках Всероссийской молодёжной конференции... |