Скачать 349.08 Kb.
|
Рис. . Схема визуализации Словарь этого языка составляют виды отображения, используемые в той или иной системы. На язык накладывается набор требований, которые в совокупности могут обеспецить когнитивную составляющую системы. Декомпозиционный анализ функциональности созданных ранее систем привел к такой структуре унифицированной системы, в которой она содержит модуль визуализации, общий для различныхспециализированных систем, и набор модулей, восстанавливающих 3-мерную сцену с учетом особенностей конкретных математических объектов. Для визуализации и исследования новых объектов пользователь-математик сможет разрабатывать собственные модули по заданной схеме. Формат входного потока данных такого модуля согласован с соответствующей счетной программой, выходного – с модулем визуализации. Рис. . Схема работы системы На входе имеются файлы с численными данными о неких математических объектах (D1, D2, D3) разных типов. Для каждого типа файлов пользователь определяет формат последовательность модулей (P1, P2, P3, P4) в целях преобразования исходной информации в описание трехмерной сцены. Любая цепочка состоит из нескольких модулей (возможно одного), каждый из которых осуществляет некоторое преобразование данных. Первый модуль принимает на вход файл с исходной информацией, второй – результат работы первого и т.д. Формат промежуточных данных не оговаривается, и в каждой отдельной цепочке он может быть произвольным. Важно, чтобы последний в цепочке модуль выдавал описание (L1, L2, L3) сцены в рамках языка в формате принятом в модуле визуализации. Система представляла собой Java приложение. Использовался Sun JDK 1.3.1. Систему можно было разделить на три основные части:
Конфигурационный файл представлял собой данные в формате xml и состоит из трех разделов.
При запуске системы проверялась правильность конфигурационного файла и корректность цепочек обработчиков для всех типов файлов. После того, как пользователь выбирает требуемый файл, системы определяет его тип по сигнатуре и запускает соответствующую цепочку обработчиков, передавая каждому следующему результат предыдущего в качестве входных данных. После того, как последний обработчик заканчивал работу, система должна была получить файл с описанием трехмерной сцены в одном из поддерживаемых форматов. Для поддержки нескольких форматов данных был создан универсальных класс загрузчика и его расширения для конкретных форматов. Для вывода трехмерной графики и обеспечения интерактивной работы пользователя со сценой была использована высокоуровневая библиотека вывода компьютерной графики Java3D. Система предоставляла пользователю 3 вида геометрических объектов:
Каждый имеет набор визуальных свойств, как общих для всех объектов, так и индивидуальных. Например, общий – видимость, цвет, прозрачность, а индивидуальными – цвет изнанки для массива треугольников. Несколько объектов могут быть объединены в группу. Группы объектов могут быть вложенными. Таким образом, получалась иерархическая структура объектов. Рис. . Диаграмма основных классов системы SVObject представляет собой абстрактный класс, в котором определены методы для всех основных действий над объектами и их свойствами. От него наследуется класс, представляющий массивы графических примитивов (SVArray) и класс группы (SVGroup). Такой подход позволяет унифицировать обращение к группе объектов и к конкретному объекту. В данных классах также реализована была связь системы с библиотекой Java3D. Техническое задание на новую систему Учитывая опыт работы с предыдущими системами визуализации результатов построения максимальных стабильных мостов в линейных дифференциальных играх, были предложены следующие требования по разработке новой системы:
Рассмотри данные пункты подробно. В требования по сохранению и загрузке входит:
Требования по организации интерфейса:
Требования по визуализации:
Требования по взаимодействию:
Дополнительные требования:
Описание полученных результатов Исходя из требований на новую систему, была продумана и реализована сетевая модель для объектов программы. Эта модель подразумевает, что объекты связываются между собой, образуя при этом граф. Эти связи являются ориентированными, что дает информацию о том, какой объект от какого зависит. При этом допустимо, что в графе имеются циклы. Это не несет никакой смысловой нагрузки (на данный момент), и алгоритмы, с помощью которых из этого графа извлекается информация об иерархиях между объектами, игнорируют подобные конструкции. Как уже отмечалось в требованиях на систему, объекты принадлежат какой-то задаче (являются результатом работы одного или нескольких программ-фильтров), а также объекты разделяются на типы. С помощью ориентированных связей довольно просто записать эту информацию, лишь связав этот объект с объектом-группой, определяющей принадлежность этого объекта задаче, и с группой, определяющей тип этого объекта. Сетевая модель довольно гибкая по своей сути. И позволяет связывать любые объекты, при условии, что эти объекты изначально описываются как узлы. Такая модель позволяет легко отгружать объекты из программы, при этом желательно обеспечить последующую связность всего графа. Это достигается “сквозным связыванием”, т.е. при удалении узла, все входные связи записываются в те объекты, которые указаны на исходящих связях. При этом все объекты разрушают исходящие связи на удаляемый объект. Также в этой модели можно удалять все объекты, которые “принадлежат” данному. Иерархия между объектами создается программами-фильтрами. Это организовано при помощи записи информации о связях в файл результата (использование файла сделано с целью простоты взаимодействия фильтров и системы визуализации), который будет непосредственно передаваться визуализатору. Был разработан единый формат, передачи результата программе (описание приведено в граве “Реализация программы”, файл рассматривается как двоичный), удобный как для загрузки объектов и другой информации, так и для записи в файл. Иерархия для данного объекта представлена в виде цепочек из имен узлов. В конец рассматриваемой цепочки помещается этот объект. Если на каком-то участке цепи нет объекта с указанным именем, то он создается. Рис. . Размещение объектов в иерархиях В системе используется понятие атрибута. Это объект, хранящий (ссылающийся на) некоторую информацию, имеющий методы записи/чтения и реализующий одно из свойств определенного узла-объекта. Значениями атрибутов удобно обмениваться, что в свою очередь дает возможность обмена свойств объектов. Так как типов атрибутов ограничено, то для них можно описать элементы управления в интерфейсе программы. По сути, интерфейс строится не на основе типа объекта, для которого он предназначен, а в зависимости от атрибутов, которые содержатся в этом объекте. Для удобства манипулирования объектами, группы содержат (аккумулируют) атрибуты объектов, в них содержащихся. Например, если в некоторую группу помещен объект с атрибутом “Color” и типом “цвет”, то в группе будет создан новый атрибут с тем же именем и типом (при условии, что подобного еще не существует). А этот узел-группа имеет возможность передать значение созданного атрибута всем атрибутам узлов, которые принадлежат данной группе. Тем не менее, есть проблема в использовании атрибутов. Для многих объектов не достаточно лишь записать некоторое значение, чтобы изменить сам объект (его вид отображения или внутренние свойства). Иногда нужно выполнить некоторый метод преобразования, который воспользуется этим значением и изменит свойства объекта. Идея состоит в том, чтобы отделить понятие атрибута от объекта в том смысле, что он не должен содержать значение, используемое для объекта, а должен вызывать методы записи, чтения свойств и обновления для этого объекта. В последней главе описывается эта схема подробнее. Т.е. имеется тенденция к использованию атрибутов как интерфейса к объектам. В итоге в системе должны присутствовать три уровня:
Реализация программы При разработке системы визуализации использовались: среда разработки Visual Studio 2005, язык C++, DirectX SDK. Интерфейс приложения строился в проекте Windows Forms (стиль построения приложения на базе классов .NET Framework class library) (в управляемой среде .NET Common Language Runtime). Структуры и алгоритмы Рассмотрим основные структуры программы. Основа приложения состоит из следующих классов: базовый класс (ABase), класс узлов графа (ANode), 3-х мерных объектов (A3DObject), поверхностей (AMesh), линий (ALine), групп точек (APointCluster), источников света (ALight), класс камер (ACamera), класс рендеринга (ARender), менеджер узлов (ANodeManager), базовый класс атрибутов (AAttr) и классы производные от него. На рис.2 представлена схема иерархии классов (ветвь ANode). На рис. 3 дана схема ветви AAttr. Рис. . Схема иерархии классов (ветвь ANode). Рис. . Схема иерархии классов (ветвь AAttr).
Этот класс используется как основа для других классов. В нем содержится виртуальный метод GetType возвращающий значение типа AObjectType (перечисление) (возвращает at_Base). Этот метод есть во всех классах. Сделано с целью определения типа объекта во время выполнения программы для последующего использования операции dynamic_cast (для понижающего преобразования). Как правило, в программе используются указатели на объекты. Удобно, чтобы они имели тип указателей на базовый класс тех объектов. Производные классы обычно содержат функции, которых нет в базовых классах. Для их вызова через указатель базового класса нужно иметь уверенность в том, что этот указатель в действительности ссылается на объект производного класса. Именно поэтому и нужно знать тип в момент приведения типа. Другой способ идентификации типа во время выполнения программы это механизм RTTI (Run Time Type Information)
Это основа для построения атрибутов. Атрибутом в системе считается объект, реализующий свойства некоторого класса, в который он включен. Как и любой другой класс, содержит виртуальную функцию, которая возвращает значение, определяющее тип экземпляра (в данном случае возвращает at_Attribute). В заключении предлагается иная схема построения атрибутов с учетом замечаний по использованию интерфейса программы.
Используется для хранения числовых значений (целого типа и с плавающей точкой: int, float, DWORD, и т.п.). Числовой атрибут организован на основе шаблонов с использованием явной реализации. Пример: #include "ANumericAttrDef.h" template class ANumericAttr |
Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических... Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению... | Реферат Флягина Т. А. Проблемы разработки многооконных интерфейсов,... Флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук | ||
Литература Уросов А. П. Разработка методик визуализации для представления работы параллельных программ, квалификационная работа на степень бакалавра... | Квалификационной работы на факультете математики и компьютерных наук В соответствии с действующими государственными образовательными стандартами выпускная квалификационная работа по специальности «Математика»... | ||
Диссертация на степень магистра наук по направлению «Математика, компьютерные науки» Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Дипломная работа по направлению Математика. Прикладная математика студента гр. Мт 505 Федеральное государственное автономное образовательное учреждение высшего профессионального образования | ||
Программа дисциплины Современные методы принятия решений для направления... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400.... | Программа дисциплины «Герменевтика» для направления 010400. 68 «Прикладная... Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки 010400. 68 "Прикладная... | ||
Решение проблем, при реализации метафоры манипуляции «Волшебный скальпель» Попова А. В. Использование визуальных манипуляционных метафор при разработке информационной системы, квалификационная работа на степень... | Программа дисциплины «История» для направления 231300. 62 и 230700.... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 231300.... | ||
1 Нормативные документы для разработки ооп впо по направлению подготовки... Общая характеристика вузовской основной образовательной программы высшего профессионального образования по направлению подготовки... | Реферат Тычинин И. А. Разработка приложения для портативных устройств... Тычинин И. А. Разработка приложения для портативных устройств с использованием qt framework, квалификационная работа на степень бакалавра... | ||
Программа по формированию навыков безопасного поведения на дорогах... Программа предназначена для преподавателей, ведущих данную дисциплину и студентов направлений 233400. 62 «Информационные системы... | Основная образовательная программа (ооп) бакалавриата, реализуемая... Нормативные документы для разработки ооп бакалавриата по направлению подготовки «Прикладная математика и информатика» | ||
Программа дисциплины Архитектура ЭВМ для направления 010400. 68 «Прикладная... Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 010400.... | Об организации и проведении Второй международной научной школы для... «Прикладные математика и физика: от фундаментальных исследований к инновациям», и в её рамках Всероссийской молодёжной конференции... |