Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика»





Скачать 349.08 Kb.
НазваниеРеферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика»
страница2/3
Дата публикации16.12.2014
Размер349.08 Kb.
ТипРеферат
100-bal.ru > Информатика > Реферат
1   2   3


Рис. . Схема визуализации

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

Декомпозиционный анализ функциональности созданных ранее систем привел к такой структуре унифицированной системы, в которой она содержит модуль визуализации, общий для различныхспециализированных систем, и набор модулей, восстанавливающих 3-мерную сцену с учетом особенностей конкретных математических объектов. Для визуализации и исследования новых объектов пользователь-математик сможет разрабатывать собственные модули по заданной схеме. Формат входного потока данных такого модуля согласован с соответствующей счетной программой, выходного – с модулем визуализации.



Рис. . Схема работы системы

На входе имеются файлы с численными данными о неких математических объектах (D1, D2, D3) разных типов. Для каждого типа файлов пользователь определяет формат последовательность модулей (P1, P2, P3, P4) в целях преобразования исходной информации в описание трехмерной сцены. Любая цепочка состоит из нескольких модулей (возможно одного), каждый из которых осуществляет некоторое преобразование данных. Первый модуль принимает на вход файл с исходной информацией, второй – результат работы первого и т.д. Формат промежуточных данных не оговаривается, и в каждой отдельной цепочке он может быть произвольным. Важно, чтобы последний в цепочке модуль выдавал описание (L1, L2, L3) сцены в рамках языка в формате принятом в модуле визуализации.

Система представляла собой Java приложение. Использовался Sun JDK 1.3.1.

Систему можно было разделить на три основные части:

  1. Чтение и обработка конфигурационного файла. Система запуска модулей обработки.

  2. Восстановление объектов, представляющих трехмерную сцену.

  3. Интерфейс пользователя управления сценой и свойствами объектов.

Конфигурационный файл представлял собой данные в формате xml и состоит из трех разделов.

  1. Описание всех обработчиков, для каждого: название, тип, строка запуска (для простых обработчиков), обрабатываемый тип файла.

  2. Описание типов файлов, которые могут обрабатываться системой. Тип файла определяется по сигнатуре расположенной в начале файла. Для каждого файла указывается последовательность вызовов обработчиков, которая необходима для получение правильной сцены.

  3. Описание установок “по умолчанию” для разных свойств вновь загруженных объектов.

При запуске системы проверялась правильность конфигурационного файла и корректность цепочек обработчиков для всех типов файлов.

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

Для поддержки нескольких форматов данных был создан универсальных класс загрузчика и его расширения для конкретных форматов.

Для вывода трехмерной графики и обеспечения интерактивной работы пользователя со сценой была использована высокоуровневая библиотека вывода компьютерной графики Java3D.

Система предоставляла пользователю 3 вида геометрических объектов:

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

  2. Массив линий.

  3. Массив точек.

Каждый имеет набор визуальных свойств, как общих для всех объектов, так и индивидуальных. Например, общий – видимость, цвет, прозрачность, а индивидуальными – цвет изнанки для массива треугольников.

Несколько объектов могут быть объединены в группу. Группы объектов могут быть вложенными. Таким образом, получалась иерархическая структура объектов.



Рис. . Диаграмма основных классов системы

SVObject представляет собой абстрактный класс, в котором определены методы для всех основных действий над объектами и их свойствами. От него наследуется класс, представляющий массивы графических примитивов (SVArray) и класс группы (SVGroup). Такой подход позволяет унифицировать обращение к группе объектов и к конкретному объекту.

В данных классах также реализована была связь системы с библиотекой Java3D.

Техническое задание на новую систему

Учитывая опыт работы с предыдущими системами визуализации результатов построения максимальных стабильных мостов в линейных дифференциальных играх, были предложены следующие требования по разработке новой системы:

  1. Требования по сохранению и загрузке.

  2. Требования по разработке интерфейса.

  3. Требования по визуализации.

  4. Требования по взаимодействию.

  5. Дополнительные требования.

Рассмотри данные пункты подробно.

В требования по сохранению и загрузке входит:

  1. Организация функций сохранения информации о трубках (мостах), а также дополнительной информации о визуализации в указанный файл (в том числе дополнение этого файла).

  2. Организация функций загрузки информации из указанного файла (файлов).

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

  4. Файл должен быть двоичным (с целью уменьшения его размеров).

  5. При указании фильтра система должна запускать цепочку обработчиков, а конечный результат (набор данных в формате системы, содержащий сцену) отображать пользователю.

Требования по организации интерфейса:

  1. Интерфейс приложения должен состоять из меню, главного окна визуализации, окна-навигатора объектов, окна действия над объектами.

  2. В меню должны быть включены такие пункты как “сохранить” (save), “открыть ”(open), “новый проект”(new), “выход ”(exit).

  3. В окне-навигаторе должны отображаться имена объектов, размещенные по иерархиям (см. дополнительные требования и требования на визуализацию).

  4. В окне действия, должны размещаться элементы управления выбранного из окна-навигатора объекта.

  5. В окне визуализации отображаются поверхности (трубок) и дополнительная информация (например, контуры трубок).

Требования по визуализации:

  1. В предыдущих системах предоставлялась возможность использования только одного источника света. В предложении ставится задача обеспечения поддержки до 8 источников света.

  2. Система визуализирует поверхности в виде набора треугольников. Т.к. в системе имеется освещение, то в вершинах этих треугольников должны быть заданы нормали, с использованием которых ведется затенение/закраска (shading). Методы закраски Гуро (Gouraud shading) и flat.

  3. Возможность визуализировать линии, точки.

  4. Возможность скрыть некоторые объекты.

  5. Полупрозрачность поверхностей. Цвет поверхности, цвета вершин.

  6. Способы визуализации поверхностей. В режиме wireframe (каркас), в режиме shade (закраски). Backface culling (отбор невидимых поверхностей).

  7. Поддержка нескольких камер.

Требования по взаимодействию:

  1. Реализовать в системе возможность манипулировать источниками света и камерами.

  2. Для каждого объекта в окне действия выводится список возможных элементов управления. Например, для объекта поверхность предоставляется управление цветом самой поверхности, ее прозрачностью и т.д. Результаты действий должны отображаться непосредственно.

Дополнительные требования:

  1. Множественная иерархия. К примеру, некоторый объект есть результат выполнения определенной программы-фильтра. Для того чтобы показать, результатом какой программы данный объект является, его помещают в именованную группу. Эта группа содержит список основных атрибутов объектов (сделано с целью того, чтобы при необходимости не проводить настройку визуализации каждого объекта, а вносить одновременные изменения для всех объектов, включенных в группу, имеющих один и тот же параметр). Один и тот же объект может быть результатом нескольких фильтров (или как то иначе с ними связанным). Его необходимо в этом случае помещать в несколько групп. Второй вид иерархий – по типу объектов на языке системы (линии, точки, источники света, камеры, поверхности и т.п.). В результате получается множество иерархий зависимости этого объекта от других. Нужно разработать механизм создания и манипулирования множественной иерархии.

  2. Как следствие того, что одни и те же объекты могут иметь разное число параметров (например, объект-группа аккумулирует в себе атрибуты тех объектов, которые в нее включены), необходима поддержка динамических атрибутов (могут добавляться/удаляться во время выполнения программы). При этом в системе должна существовать возможность передачи этих параметров от одних объектов другим.

Описание полученных результатов

Исходя из требований на новую систему, была продумана и реализована сетевая модель для объектов программы. Эта модель подразумевает, что объекты связываются между собой, образуя при этом граф. Эти связи являются ориентированными, что дает информацию о том, какой объект от какого зависит. При этом допустимо, что в графе имеются циклы. Это не несет никакой смысловой нагрузки (на данный момент), и алгоритмы, с помощью которых из этого графа извлекается информация об иерархиях между объектами, игнорируют подобные конструкции. Как уже отмечалось в требованиях на систему, объекты принадлежат какой-то задаче (являются результатом работы одного или нескольких программ-фильтров), а также объекты разделяются на типы. С помощью ориентированных связей довольно просто записать эту информацию, лишь связав этот объект с объектом-группой, определяющей принадлежность этого объекта задаче, и с группой, определяющей тип этого объекта. Сетевая модель довольно гибкая по своей сути. И позволяет связывать любые объекты, при условии, что эти объекты изначально описываются как узлы. Такая модель позволяет легко отгружать объекты из программы, при этом желательно обеспечить последующую связность всего графа. Это достигается “сквозным связыванием”, т.е. при удалении узла, все входные связи записываются в те объекты, которые указаны на исходящих связях. При этом все объекты разрушают исходящие связи на удаляемый объект. Также в этой модели можно удалять все объекты, которые “принадлежат” данному.

Иерархия между объектами создается программами-фильтрами. Это организовано при помощи записи информации о связях в файл результата (использование файла сделано с целью простоты взаимодействия фильтров и системы визуализации), который будет непосредственно передаваться визуализатору. Был разработан единый формат, передачи результата программе (описание приведено в граве “Реализация программы”, файл рассматривается как двоичный), удобный как для загрузки объектов и другой информации, так и для записи в файл. Иерархия для данного объекта представлена в виде цепочек из имен узлов. В конец рассматриваемой цепочки помещается этот объект. Если на каком-то участке цепи нет объекта с указанным именем, то он создается.



Рис. . Размещение объектов в иерархиях

В системе используется понятие атрибута. Это объект, хранящий (ссылающийся на) некоторую информацию, имеющий методы записи/чтения и реализующий одно из свойств определенного узла-объекта. Значениями атрибутов удобно обмениваться, что в свою очередь дает возможность обмена свойств объектов. Так как типов атрибутов ограничено, то для них можно описать элементы управления в интерфейсе программы. По сути, интерфейс строится не на основе типа объекта, для которого он предназначен, а в зависимости от атрибутов, которые содержатся в этом объекте.

Для удобства манипулирования объектами, группы содержат (аккумулируют) атрибуты объектов, в них содержащихся. Например, если в некоторую группу помещен объект с атрибутом “Color” и типом “цвет”, то в группе будет создан новый атрибут с тем же именем и типом (при условии, что подобного еще не существует). А этот узел-группа имеет возможность передать значение созданного атрибута всем атрибутам узлов, которые принадлежат данной группе.

Тем не менее, есть проблема в использовании атрибутов. Для многих объектов не достаточно лишь записать некоторое значение, чтобы изменить сам объект (его вид отображения или внутренние свойства). Иногда нужно выполнить некоторый метод преобразования, который воспользуется этим значением и изменит свойства объекта. Идея состоит в том, чтобы отделить понятие атрибута от объекта в том смысле, что он не должен содержать значение, используемое для объекта, а должен вызывать методы записи, чтения свойств и обновления для этого объекта. В последней главе описывается эта схема подробнее. Т.е. имеется тенденция к использованию атрибутов как интерфейса к объектам. В итоге в системе должны присутствовать три уровня:

  1. Уровень объектов языка визуализации программы.

  2. Уровень интерфейса к этим объектам.

  3. Уровень интерфейса пользователя.



Реализация программы

При разработке системы визуализации использовались: среда разработки 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).

    1. Базовый класс (ABase)

Этот класс используется как основа для других классов. В нем содержится виртуальный метод GetType возвращающий значение типа AObjectType (перечисление) (возвращает at_Base). Этот метод есть во всех классах. Сделано с целью определения типа объекта во время выполнения программы для последующего использования операции dynamic_cast (для понижающего преобразования). Как правило, в программе используются указатели на объекты. Удобно, чтобы они имели тип указателей на базовый класс тех объектов. Производные классы обычно содержат функции, которых нет в базовых классах. Для их вызова через указатель базового класса нужно иметь уверенность в том, что этот указатель в действительности ссылается на объект производного класса. Именно поэтому и нужно знать тип в момент приведения типа.

Другой способ идентификации типа во время выполнения программы это механизм RTTI (Run Time Type Information)

    1. Ветвь AAttr



      1. Базовый класс атрибутов (AAttr)

Это основа для построения атрибутов. Атрибутом в системе считается объект, реализующий свойства некоторого класса, в который он включен. Как и любой другой класс, содержит виртуальную функцию, которая возвращает значение, определяющее тип экземпляра (в данном случае возвращает at_Attribute).

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

      1. Числовой атрибут (ANumericAttr)

Используется для хранения числовых значений (целого типа и с плавающей точкой: int, float, DWORD, и т.п.).

Числовой атрибут организован на основе шаблонов с использованием явной реализации. Пример:

#include "ANumericAttrDef.h"

template class ANumericAttr
1   2   3

Похожие:

Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат: Шайдуров А. Г. Исследование и разработка некоторых графических...
Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат Флягина Т. А. Проблемы разработки многооконных интерфейсов,...
Флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconЛитература
Уросов А. П. Разработка методик визуализации для представления работы параллельных программ, квалификационная работа на степень бакалавра...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconКвалификационной работы на факультете математики и компьютерных наук
В соответствии с действующими государственными образовательными стандартами выпускная квалификационная работа по специальности «Математика»...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconДиссертация на степень магистра наук по направлению «Математика, компьютерные науки»
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconДипломная работа по направлению Математика. Прикладная математика студента гр. Мт 505
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины Современные методы принятия решений  для направления...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 010400....
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины «Герменевтика» для направления 010400. 68 «Прикладная...
Программа предназначена для преподавателей, ведущих данную дисциплину, и студентов направления подготовки 010400. 68 "Прикладная...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРешение проблем, при реализации метафоры манипуляции «Волшебный скальпель»
Попова А. В. Использование визуальных манипуляционных метафор при разработке информационной системы, квалификационная работа на степень...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины «История» для направления 231300. 62 и 230700....
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления подготовки 231300....
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» icon1 Нормативные документы для разработки ооп впо по направлению подготовки...
Общая характеристика вузовской основной образовательной программы высшего профессионального образования по направлению подготовки...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconРеферат Тычинин И. А. Разработка приложения для портативных устройств...
Тычинин И. А. Разработка приложения для портативных устройств с использованием qt framework, квалификационная работа на степень бакалавра...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программа предназначена для преподавателей, ведущих данную дисциплину и студентов направлений 233400. 62 «Информационные системы...
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconОсновная образовательная программа (ооп) бакалавриата, реализуемая...
Нормативные документы для разработки ооп бакалавриата по направлению подготовки «Прикладная математика и информатика»
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconПрограмма дисциплины Архитектура ЭВМ для направления 010400. 68 «Прикладная...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 010400....
Реферат: Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика. Прикладная математика» iconОб организации и проведении Второй международной научной школы для...
«Прикладные математика и физика: от фундаментальных исследований к инновациям», и в её рамках Всероссийской молодёжной конференции...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск