Содержание к диссертации
Введение
1. Введение 3
1.1. Обзор методов построения основных геометрических объектов 3
1.2. Обзор методов построения составных поверхностей 7
1.3. Развитие вычислительной техники и новые задачи 14
1.4. Анализ исследований в данной области 15
1.4.1. Метод R-функций 19
1.5. Направление данных исследований 21
1.6. Выводы 27
2. Новый элемент описания ГО 31
2.1. Эволюция описания ГО. R-Descriptor 31
2.2. Информация R-Descriptor 33
2.3. Реализация R-Descriptor 34
2.4. Выводы 41
3. Работа с графикой при помощи R-Descriptor 42
3.1. Обработка ГО 43
3.2. Обмен графической информацией через сетевой интерфейс 47
3.2.1. Общие принципы передачи данных в сети 47
3.2.2. Передача графических данных 49
3.2.3. Взаимодействие R-протокола с протоколом TCP и графической информацией .51
3.2.3.1. Работа с протоколом TCP 52
3.2.3.2. Подготовка графической информации для передачи по сети 53
3.3. Хранение ГО и дополнительного описания на устройствах внешней памяти 54
3.3.1. Различия между форматом TIFF и другими форматами 55
3.3.1.1. Преимущество формата TIFF 55
3.3.1.2. Недостатки формата TIFF 56
3.3.2. Структура TIFF-файла 56
3.3.2.1. Header (заголовок) 56
3.3.2.2. Directory (оглавление) 56
3.3.2.3. Tag entry 57
3.3.3. Описание предложенного TAGa 58
3.4. Разработка схемы организации работы с изображением на основе R-Descriptor 59
3.5. Выводы 69
4. Программные объекты 70
4.1. Реализация функциональности при помощи объектно-ориентированного подхода 71
4.1.1. Объектно-ориентированная методология разработки приложений 71
4.1.2. Описание Объекта TRFObect 73
4.1.3. Модификация в соответствие с новыми требованиями. Объект TMRFObect 75
4.2. Выводы 77
5. Реализация результатов исследований 78
5.1. Выводы 82
6. Заключение 84
7. Литература 86
Приложения . 94
- Развитие вычислительной техники и новые задачи
- Информация R-Descriptor
- Обмен графической информацией через сетевой интерфейс
- Объектно-ориентированная методология разработки приложений
Введение к работе
Интерес к синтезу изображений объясняется высокой информативностью последних. Информация, содержащаяся в изображении, представлена в наиболее концентрированной форме, и эта информация, как правило, более доступна для анализа: для ее восприятия получателю достаточно иметь относительно небольшой объем специальных знаний.
Разработка машинно-ориентированных методов решения геометрических задач в настоящее время мыслится как синтез методов аналитической и дифференциальной геометрии, машинного моделирования, графических методов аппроксимации, интерполирования и оптимизации, различных итерационных методов и др., о чем говорится в [47].
Необходимо отметить высокий уровень развития компьютерной графики в ряде областей, а также новые тенденции.
Развитие вычислительной техники и новые задачи
Во многих работах отмечается значительное возрастание возможностей вычислительной техники (ВТ), и открывающиеся вследствие этого перспективы. Например, в [33] утверждается: «Возможности ВТ в частности -за счет нового уровня визуализации результатов компьютерного моделирования, делает в настоящее время актуальной постановку дальнейших исследований в области синтеза кривых или поверхностей различных геометрических форм с целью получения широкого класса новых линий и поверхностей».
В то же время этап взрывного развития переживают системы, основанные на глобальной компьютерной сети Internet и крупных корпоративных компьютерных сетях intranet. Нельзя не заметить повышенный интерес к интеграции информационных ресурсов, т.е. к объединению различных методов и технологий в единый комплекс (о чем сказано, например, в [57]), что привело, соответственно, к созданию интегрированных систем. Такой интерес обусловлен возросшей сложностью информационных моделей, необходимостью обрабатывать большие объемы разнородной информации.
Особый интерес представляет новый тип интегрированных систем -геоинформационные системы (ГИС) [57]. Важнейшей частью ГИС является графика, но существующие графические технологии направлены на решение частных задач в определенных, довольно специализированных областях. Если рассматривать применение графики в ГИС, то из обзора [41] вытекает, что в этой области наиболее изучены следующие направления: картография, хранение карт, привязка пространственных изображений к картам; векторизация растровых снимков поверхности Земли, полученных со спутника; различного рода анализ изображений, распознавание образов; восстановление трехмерных сцен по серии снимков; трехмерное зрение, выделение контуров тела.
В данной работе проводятся исследования, направленные на принятие решений, позволяющих осуществить приведение графики к требованиям интеграции. Разрабатываются способы работы со сложными составными графическими объектами в интегрированных системах, построенных на основе и компьютерных сетей.
Краткий обзор наиболее приоритетных исследований и методов построения составных кусочных поверхностей свидетельствует о том, что работы в области прикладной геометрии поверхностей и вычислительной геометрии подняли на новый качественный уровень именно конструктивно-аналитическое направление исследуемого вопроса, что видно по работам [1], [28], [23], [45], [15], [49], [44], [60], [39], [32], [47], [12]. Однако, как сказано в [32], универсального метода, пригодного для визуализации в сетевой среде, не существует. Из анализа существующих методов конструирования геометрических форм и особенностей прикладных задач вытекают следующие выводы: существующие конструктивные методы геометрического моделирования имеют определенную область применения, у некоторых эта область обширна, у некоторых - узка, уровень привлечения современных достижений математических и смежных технических наук для комплексного решения задач проектирования и технологии еще не достиг своего завершающего этапа [32];. существует потребность использования сразу нескольких методов построения геометрического объекта (ГО), т.к. каждый метод, решая определенную задачу, не может удовлетворять всем требованиям. Например, как отмечается в [32],: «методы интерполяции на основе кусочно-полиноминальных или В-сплайнов (См. [2], [11]) дают достаточно точные результаты при проектировании одномерных обводов, но, к сожалению, при конструировании двумерных обводов добиться такого эффекта не просто из-за сегментации задачи, что в конечном счете приводит к увеличению объема вычислений и памяти ЭВМ»; имеет место локальный подход к созданию графических систем. Наибольшие успехи достигнуты в автоматизации проектирования отдельных задач. Однако такой подход затрудняет разработку интегрированных систем; графические системы, используемые в настоящее время, в большинстве не ориентированы на использование в компьютерных сетях. Они, если и допускают функционирование в сетевом режиме, то все равно не используют эффективно ресурсы, возможности сетей; недостаточная гибкость систем. Например, существующие САПР, как правило, позволяют получать приемлемые проектные решения, не обязательно являющиеся оптимальными в конкретной реализации. Конструирование - сложный творческий процесс, который, предполагает выбор параметров и ограничений из определенных диапазонов, учет результатов предыдущих этапов и экспертную оценку полученного решения, что предопределяет необходимость интеллектуальной поддержки процесса принятия решений.
Исходя из вышеизложенного можно смело утверждать, что разработка компьютерных инструментальных средств и методов исследования геометрических моделей различных базовых объектов, внедрение их в процессы визуализации, проектирования и изучения - актуальная, насущная задача, требующая решения сложных теоретических и практических проблем. Видно, что в связи с новыми тенденциями, такими как развитие средств ВТ, средств коммуникаций, интереса к ГИС, интеграции разнообразной информации и т.д., возникают такие задачи, где проявляется узость и ограниченность существующих методов, и становятся актуальными дальнейшие исследования.
В настоящее время в железнодорожной и других областях, некоторые направления повышения эффективности работы связаны с развитием одной из областей информатики - компьютерной геометрии и графики и ее приложений: геоинформационных систем, систем автоматизированного проектирования и др. Это требует внедрения новых достижений в области персональной техники, новых информационных технологий, в частности, скоростных каналов передачи информации.
Информация R-Descriptor
Таким образом, состав информации, которую должен хранить R-Descriptor, непостоянен, и зависит от конкретных потребностей прикладной задачи. Расширенное описание ГО можно представить в электронном виде разными способами. Каждый из них обладает своими преимуществами, а также имеет некоторые ограничения. Необходимо выбрать наиболее оптимальный способ описания дополнительных атрибутов. Для того чтобы выбрать наилучший способ логической и физической реализации, необходимо определить требования, которым должен соответствовать R-Descriptor. Из многообразных требований, которым должна отвечать характеристика объекта R-Descriptor, выделим следующие: информативность - подразумевает то, что атрибут должен хранить достаточное количество информации для адекватного описания объекта; размер - параметр, конфликтующий с требованием информативности. Означает, что данные должны храниться в наиболее компактном виде для рационального использования памяти; простота использования - формат атрибута должен быть простым, понятным и удобным для использования разработчиком. Это позволит уменьшить количество ошибок на этапе создания программ; расширяемость - должен иметь возможность добавлять новые элементы описания, при этом, не затрагивая существующие, и не требуя изменения уже созданных программных модулей. Рассмотрим наиболее простые способы хранения данных. Числовой параметр Информация кодируется в виде числа, как сумма коэффициентов, имеющих заданный вес. R-Descriptor = K1X+K2Y+K3Z+K4U, где Кп-вес соответствующей характеристики.
Данный способ хранения данных очень ограничен и может использоваться только в частных случаях для анализа информации, которую будет удобно представить в таком виде. Битовое поле Поля битов - это специальный тип, в котором определено, из скольких бит состоит каждый элемент. Особенно они удобны, для организации хранения в сжатом виде информации о состоянии включен/выключен.[5] Для того чтобы выделить из R-Descriptor один из входящих в него параметров, следует воспользоваться маской битов. Например, чтоб выделить параметр X из примера, изображенного на рисунке, необходимо применить поразрядную операцию AND и маску OOOFh. Так как для хранения одного состояния используется один бит, такой тип данных будет иметь небольшой размер, что является преимуществом. Однако такое представление данных не подходит для хранения информации, имеющей сложную структуру.
Запись объединяет несколько переменных, возможно разного типа. Переменные, которые объединены, называют членами, элементами или полями.[5] Например, запись в терминах Object Pascal будет выглядеть таким образом: а доступ к конкретному полю записи осуществляется с помощью операции «точка». Например RDescriptor.X При таком способе хранения возможно хранить данные любых типов, а также данных со сложной структурой. Другими преимуществами являются простота использования, высокая скорость доступа, так как используется прямая адресация. Недостатком всех перечисленных выше структур является их недостаточная гибкость, т.к. все множество хранимых атрибутов должно быть определено заранее. Изменение состава атрибутов повлечет изменение формата их представления, и соответственно, потребует модификации программ. Имеются более гибкие способы хранения данных, если представить данные как множество элементов. Вследствие многообразия атрибутов и их изменчивости, целесообразно использовать для их хранения множества или списки атрибутов вместо определения жесткой структуры. Как отмечено в [4], списки являются чрезвычайно гибкой структурой, так как их легко сделать большими или меньшими, и их элементы доступны для вставки или удаления в любой позиции списка. Списки также можно объединять или разбивать на меньшие списки. В математике список представляет собой последовательность элементов определенного типа. В данном случае это будет последовательность дополнительных атрибутов ГО. Для представления списков можно использовать несколько структур данных. При реализации списков с помощью массивов элементы списка располагаются в смежных ячейках массива (Рис. 3). Это представление позволяет легко просматривать содержимое списка и вставлять новые элементы в его конец. Но вставка нового элемента в середину списка требует перемещения всех последующих элементов на одну позицию к концу массива, чтобы освободить место для нового элемента. Удаление элемента также требует перемещения элементов, чтобы закрыть освободившуюся ячейку. Для реализации однонаправленных списков используются указатели, связывающие последовательные элементы списка. Эта реализация освобождает от использования непрерывной области памяти для хранения списка и, следовательно, от необходимости перемещения элементов списка при вставке или удалении элементов. Однако ценой за это удобство становится дополнительная память для хранения указателей. В этой реализации список состоит из ячеек, каждая из которых содержит элемент списка и указатель на следующую ячейку списка (Рис. 4).
Обмен графической информацией через сетевой интерфейс
Алгоритм, показанный на Рис. 9 а)., позволяет узнать, заблокирован ли фрагмент. Он должен выполняться в том случае, если необходимо выполнить «критическую часть кода», т.е. выполнение операции, требующей монопольного доступа к фрагменту ГО. В данном случае это операция редактирования фрагмента, которые происходят при любой попытке изменить параметры фрагмента ГО или его R-Descriptor. Алгоритм, проанализировав состояние ГО, описываемое R-Descriptor, определит дальнейшие действия. Если фрагмент заблокирован, то будет отказано в доступе любому пользователю, кроме того пользователя, который этот фрагмент заблокировал.
Алгоритм, показанный на Рис. 9 Ь)., устанавливает признак блокировки фрагмента ГО. Он добавляет в R-Descriptor атрибуты, указывающие другим пользователям на то, что фрагмент в настоящее время заблокирован, если они еще не добавлены. Атрибут State содержит информацию о состоянии «заблокирован», а атрибут User содержит идентификатор пользователя, заблокировавшего фрагмент.
Алгоритм, показанный на Рис. 9 с)., удаляет признак блокировки фрагмента ГО. Он ищет атрибуты, отвечающие за блокировку State и User, и удаляет их. После выполнения данного блока другие пользователи могут претендовать на выполнение аналогичных операций с фрагментом ГО.
Ниже показано состояние R-Descriptor для случая, когда осуществляется параллельное редактирование фрагментов 1 и 3 разными пользователями (Рис. 10).
Конфликт возникает, если несколько пользователей начнут одновременно редактировать один фрагмент. Например, для случая, показанного на Рис. 10, если пользователь Userl сделает запрос на редактирование фрагмента 3, ему будет отказано. Вся сложность процесса доставки данных в локальных сетях и в Интернет заключена в достаточно простой сетевой интерфейс. Прикладные данные просто передаются из программы в стек протоколов, этот протокол передает их следующему и т.д. [10]
Процесс перемещения данных сквозь стек протоколов на самом деле представляет их инкапсуляцию. Как известно, инкапсуляция - это вложение информации, созданной по некоторому протоколу, в секцию блока данных другого протокола Рис. 11. При передаче графических данных [31] через сетевой интерфейс необходимо инкапсулировать их в формат уровня пользовательского приложения.
В соответствие с выбранной стратегией, описание графической информации отделено от самой информации [33] для их анализа на сетевом уровне обработки графических данных [27]. Это. помогает осуществить управление графическими данными в сетевой среде, решить разнообразные вопросы в области сетевого взаимодействия с графикой, рассчитать время передачи данных по сети, реализовать функции распараллеливания передачи групп связанных ГО по разным каналам, и многое другое. Становится возможным интеграция графики в сетевую среду, как показано на Рис. 13 для кадра Ethernet.
При инкапсуляции данных происходит их форматирование таким образом, чтобы они удовлетворяли тому или иному протоколу. Решив передать информацию по сети, необходимо установить, каким протоколом удобнее воспользоваться. Данные будут инкапсулированы в выбранный протокол, отвечающий требованиям задачи. Для правильного выбора протокола надо знать, какие из них есть в системе и какими особенностями они обладают. Чтобы правильно инкапсулировать данные, необходимо представлять структуру данных выбранного протокола. Стек протоколов TCP/IP, используемый в Интернет, позволяет осуществить интерфейс сетевого доступа к ГО.
Каждый из этих уровней несет на себе некоторую нагрузку по решению основной задачи - организации надежной и производительной работы составной сети, части которой построены на основе разных сетевых технологий. Прикладной уровень объединяет все службы, предоставляемые системой пользовательским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. Прикладной уровень реализуется программными системами, построенными в архитектуре клиент-сервер, базирующимися на протоколах нижних уровней. В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и «не интересуются» способами передачи данных по сети. Этот уровень постоянно расширяется за счет присоединения к старым, прошедшим многолетнюю эксплуатацию сетевым службам типа Telnet, FTP, TFTP, DNS, SNMP сравнительно новых служб таких, например, как протокол передач гипертекстовой информации HTTP. Именно на этом уровне необходимо реализовать способ сетевой обработки графической информации -R-протокол. Таким образом, определено место R-протокола в уровнях стека TCP/IP и семиуровневой модели ISO (Рис. 14). Как известно, это соответствие весьма условно. Предлагаемый подход на основе R-протокола обеспечивает интерфейс между графической программой и сетевыми протоколами. С одной стороны он позволяет использовать существующие, проверенные временем, сетевые услуги, а с другой - расширить графические возможности прикладных программ новыми функциями сетевого использования графики. Рассмотрим, как осуществить эти взаимодействия. Для одновременного использования протокола TCP несколькими прикладными программами на одном компьютере он представлен набором адресов и портов. Номера портов применяются для сохранения следа о различных взаимодействиях, одновременно протекающих в сети. В RFC 1700 перечислены номера так называемых общеизвестных портов. Они используются разработчиками приложений для сетевой части приложений. В Таблица 2 показано применение номеров портов протоколами TCP и UDP. Номера 0-255 используются для общедоступных приложений. Номера 256-1023 назначаются компаниям для использования в их приложениях. Номера, превышающие 1023, используются более высоким уровнями для сеанса с другими хостами, а также протоколом TCP в качестве адресов источника и получателя в сегменте TCP.
Объектно-ориентированная методология разработки приложений
Отличительной особенностью является реализация обмена графическими данными через вычислительную сеть, вместо традиционного использования для этой цели файлов. Эта программа имеет диалоговые средства, основанные на графическом интерфейсе Windows [33], [54], [7], и процедуры [8], через которые осуществляется управление объектом TMRFObect, и, следовательно, работа с ГО, посредством объекта TMRFObect. В клиентской программе присутствуют элементы управления для выбора фрагментов, а также для просмотра редактирования матрицы связей и R-Descriptor выбранного фрагмента изображения. Последнее реализуется при помощи объекта TMRFObect. Интерфейс программы основан на стандартных диалоговых средствах - мыши и клавиатуре. показан результат работы программы. Данное составное изображение представляет собой пересечение простых фрагментов. В описании каждого фрагмента изображения присутствует R-Descriptor, который имеет атрибут, указывающий на способ закраски данного фрагмента. В приведенном примере для одних фрагментов указан способ закраски при помощи наложения текстуры, а для других - упрощенный способ, использующий градиентную заливку. В алгоритме, формирующем трехмерное изображение, анализируется соответствующий атрибут R-Descriptora, и осуществляется закраска на основании этих данных. При совместной работе в компьютерной сети, фрагменты, которые редактируются на клиентских рабочих станциях, блокируются, и отмечается и на других серым цветом. Такой режим работы в клиентских программах реализуется на основе ответов сервера. Сервер генерирует ответ, выполняя анализ R-Descriptor, который присутствует в описании каждого фрагмента изображения и имеет атрибут, хранящий сведения о блокировке фрагмента.
Изменения, произведенные на клиентской рабочей станции, передаются на сервер. Сервер сообщает об этом другим клиентским программам. На Рис. 27 результат работы программы при работе с изображением по сети. На базе предложенной теории разработана программа формирования трехмерного изображения составного объекта. Программа работает с Данная диссертационная работа является научной квалификационной работой, в которой содержится решение задачи, имеющей существенное значение для соответствующей отрасли знаний. В результате проведенных исследований решена задача, имеющая существенное значение для визуализации и работы с составным ГО в сетевой среде. Полученные результаты открывают новые возможности в обработке изображений для пользователей систем САПР, ГИС железнодорожного транспорта и других графических приложений. Достигнуты следующие результаты. Проведен обзор методов компьютерного представления графической информации, а также обзор текущего состояния средств вычислительной техники. Выявлены новые требования к машинному представлению графической информации, и новые задачи, стоящие перед графическими системами.
Разработан новый метод описания графических объектов с использованием предложенного элемента описания R-Descriptor. Исследованы процессы обработки, передачи и хранения графических данных в компьютерных сетях. Разработаны принципы их реализации. Разработан алгоритм разрешения конфликтов совместного доступа к графической информации, неизбежно возникающих при сетевом взаимодействии. Разработан алгоритм построения изображения на базе предложенной методологии. Предложен принцип построения прикладных программ, основанных на предложенных решениях, и ориентированных на решение задач сетевой визуализации. В объектно-ориентированной среде Object Pascal реализованы программные интерфейсы для сетевого доступа к графической информации, и для визуализации, основанной на модифицированном автором методе R-операторов. Создана прикладная программа, демонстрирующая возможности предложенных решений. Разработанный метод описания ГО преодолевает ограничения существующих методов и открывает новые возможности по обработке изображений в сетевой информационной системе. Теоретические исследования и разработанные программные объекты могут быть использованы при построении систем САПР, ГИС и в иных системах распределенной визуализации.