Интерактивные графические системы

Автор работы: Пользователь скрыл имя, 11 Декабря 2013 в 20:38, курсовая работа

Краткое описание

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

Содержание

ВВЕДЕНИЕ ………………………………………………………………....3
1 История компьютерной графики………………………………………...5
1.2 Приложения компьютерной графики………………………………….8
1.3 Компьютерная графика в компьютерном моделировании.…………...9
2 ВИДЕОАДАПТЕРЫ……………………………………………………….…11
2.1 Мониторы.................................................................................................11
2.2 Видеоадаптеры EGA/VGA……………………………………………..12
3 ИНТЕРАКТИВНЫЕ ГРАФИЧЕСКИЕ СИСТЕМЫ…………………………………...14
3.1 Графические языки высокого уровня………………………………....15
3.2 Синтаксические расширения алгоритмических языков……………..16
3.3 Процедурные графические языки……………………………………..20
3.4 Языки диалога…………………………………………………………..23
3.5 Стандартизация ИГС……………………………………………………25
3.6 Логическое и физическое представление изображений в ИГС. Операции над изображениями…………………………………………………………27
3.7 Основные элементы структуры ИГС. ……………………………….…..28
3.8 Проектирование ИГС……………………………………………………….29
3.9 Прикладная модель ИГС. Способы построения прикладной модели…31
3.10Интерфейс пользователя. Принципы разработки интерфейса пользователя……………………………………………………………………31
3.11 Выводы………………………………………………………………….32
ЗАКЛЮЧЕНИЕ………………………………………………………...…..33
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ…………

Вложенные файлы: 1 файл

игс.docx

— 56.76 Кб (Скачать файл)

  Отличия СИМАК-Д от COMPAC состоят в несколько ином  входном языке и ином наборе  базовых элементов формы, включающем  в себя точку, плоскость, прямоугольный  параллелепипед, круговые цилиндры  и конус. [3]

* * *

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

- довольно значительные  затраты на создание языка  и транслятора с него, так, например, трудозатраты на систему COMPAC составили  около 40 ч/лет ;

- затраты на внедрение,  на включение языка в работающую  систему программирования и на  обучение пользователей, которые  не всегда охотно берутся за  изучение еще одного языка,  а предпочитают пользоваться  процедурными расширениями известных  им алгоритмических языков: ALGOL, FORTRAN, PL-1, PASCAL и т.д.;

- трудности с последующим  расширением языка;

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

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

 

 

3.2  Синтаксические расширения алгоритмических языков

  Ряд из отмеченных  выше затруднений снимается при  реализации второго подхода - синтаксическом расширении некоторого  исходного алгоритмического языка.  Удобство этого подхода заключается  в том, что пользователю требуется  лишь "доучиться" в уже известном  ему языке. Расширение заключается  в разработке дополнительных  конструкций языка для описания  и манипулирования графическими  и геометрическими объектами.  Возможны несколько способов  реализации такого расширенного  языка:

- модификация существующего  транслятора;

- использование препроцессора,  либо макропроцессора, обрабатывающего  программу на расширенном языке  и превращающего его в программу  на исходном языке;

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

  Несмотря на всю  неприспособленность FORTRANa для эффективной обработки сложноструктурированных данных, неудобство его структур управления и средств сегментирования программ, большинство реализаций синтаксических расширений было связано именно с FORTRANом из-за его популярности в то время у пользователей.

  Одна из первых  реализаций графического расширения  FORTRANа система GRAF (GRAPHIC ADDITIONS TO FORTRAN). Расширение основывается на введении нового типа переменных DISPLAY, значениями которых являются последовательности графических команд устройства. Имеются встроенные и пользовательские DISPLAY-функции. Из DISPLAY-переменных и функций строятся выражения этого типа. Оператор DISPLAY-присваивания присваивает вычисленное значение переменной соответствующего типа. Предусмотрены средства стирания и вывода на оконечные устройства дисплейных переменных, чтения/записи дисплейного файла, опроса наличия сигналов внимания с графических устройств ввода.

  В качестве более  мощного (и позднего) графического  расширения FORTRANа можно упомянуть систему GALA. Также вводится новый тип данных - BILD. Значениями этого типа могут обладать переменные и константы. В качестве системных констант этого типа имеются элементарные изображения (в том числе пустое). Над данными этого типа определены операторы преобразований. Для построения сложных изображений используется, так называемый, оператор совмещения. Над изображением определены операторы манипулирования и опроса. Изображения могут проверяться в условных операторах. Имеются операторы вывода изображений с назначением преобразований и окна отсечения. Средства ввода обеспечивают ожидание и получение данных, разрешение и запрет прерываний. GALA-программа может структурироваться на поименованные сегменты с параметрами или без.

  В качестве одной  из отечественных разработок  по графическому расширению FORTRANа можно назвать "AВТОКОД для работы с графическим дисплеем EC-7064", при использовании которого обеспечивается пакетный режим работы, когда информация только выводится на дисплей. Операторы АВТОКОДа вставляются в текст на FORTRANе и помечаются в первой позиции буквой A. Предусмотрено 6 групп операторов: резервирования памяти и увязывания с массивами FORTRANа; описания точек и процедур; построения совокупностей точек, ломаных, текстов, вызовов процедур; ветвления; гнездования операторов; фрагментирования изображения на кадры и рисунки.

  Наряду с FORTRANом в качестве языка для графического расширения использовался ALGOL. Так в описана система DIGOS, которая состоит из геометрически ориентированного языка, его интерпретатора и трехуровневой структуры данных (PDS - параметрической кольцевой структуры, элементы которой формируются операторами геометрически-ориентированного языка; DDSR3 - структуры данных 3D представления, формируемой из PDS при активации вывода; DDSR2 - структуры данных 2D представления, формируемой из DDSR3 при выполнении преобразований, проецирования и отображения). В языке предусмотрены 2 группы геометрических операндов - простые геометрические элементы (точки, прямые, плоскости, последовательности точек, поверхности, тела) и составные геометрические элементы, образованные либо из элементов одного, либо разных типов. Над геометрическими операндами определены геометрические операции. Графические логические операции служат для проверки значения геометрического операнда и проверки, содержится ли геометрический операнд в некотором другом. Имеются графические операции ввода/вывода и увязывания физико-технических данных с геометрическими операндами.

  В качестве примера  графического расширения PL-1 можно  привести GPL/1 [8], где PL-1 расширен на векторные, двух и трехмерные типы данных и векторные операции. Введены переменные типа IMAGE, которые могут принимать значения, определяемые комбинациями элементов данных изображения вектора, строки, функциями изображения и др. Значения переменных типа IMAGE состоит из двух частей - атрибутной и собственно изображения. Над изображениями определены операции присоединения, объединения, позиционирования, масштабирования, вращения. Введен тип данных GRAPHIC и совокупность атрибутов, описывающих данные этого типа.

Предусмотрено три разновидности  элементов данных типа GRAPHIC: DESIGN, из которых строится изображение, все  или некоторые элементы которого могут меняться (пример - вывод на дисплей); DISPLAY - аналогично DESIGN, но не может  быть изменений (пример - вывод на графопостроитель); STORAGE - для запоминания и последующего воспроизведения изображений.

Оператор GET используется для  извлечения изображения из элемента данных, оператор ERASE - для выборочного  либо полного стирания. Предусмотрены  также средства для ведения очереди  ввода и манипулирования ею.

* * *

- Анализ вышеприведенных,  а также других синтаксических  расширений алгоритмических языков  показывает, что:

- вводятся данные графических  типов;

- определяются операции  над ними;

- разрабатываются средства  для структуризации, сохранения, манипулирования  и отображения изображений;

- устанавливаются правила  ведения интерактивной работы.

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

- требуются значительные  затраты труда высококвалифицированных  системных программистов как  на этапе первоначальной разработки, так и при необходимости расширений;

- из-за использования  в определенной мере экзотического  языка безусловно нарушается переносимость прикладных программ;

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

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

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

 

3.3  Процедурные графические языки

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

  Назначение графической  системы в такой модели состоит  в преобразовании двух или  трехмерной модели объекта, формируемой  прикладной программой, в графические  команды и данные, либо передаваемые  на устройства, либо запоминаемые  в той или иной графической  структуре данных.

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

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

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

- обеспечением мобильности  прикладных программ, т.е. легкости  их переноса в иное окружение.

  Аппаратная независимость  средств отображения обеспечивается  их построением по иерархическому  принципу в виде некоторого  набора логических уровней. Одна  из разновидностей иерархического  принципа - принцип перевернутой  пирамиды. При этом подходе на  нижнем уровне располагается  аппаратно-зависимый драйвер с  минимально допустимым набором  возможностей, например, позиционирование, построение отрезка, дуги окружности  и т.д. При необходимости использования  другого устройства достаточно  заменить драйвер. Системы, построенные  по принципу перевернутой пирамиды, например, GINO-3D ,ГРАФОР , как правило, ориентированы на работу с несложными устройствами. Использование устройств с более богатыми возможностями влечет за собой либо их неэффективное использование, либо переделку графической системы, т.е. в сущности, тормозится развитие средств вывода. В этом заключается основной недостаток таких систем.

  Более гибкое и  мощное использование иерархического  принципа заключается в разбиении  средств вывода графпакета на три логических уровня с четкой фиксацией уровней и соблюдением интерфейсов между ними. Каждый уровень является для последующего некоторым виртуальным графическим устройством. Такой подход позволяет безболезненно модифицировать (улучшать) отдельные уровни, легко распределять программное обеспечение между различными ЭВМ, стыковать графическую систему с другими компонентами программного обеспечения.

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

  На втором - среднем  уровне находится аппаратно-независимый графпакет общего назначения.

  На третьем - верхнем  уровне находятся проблемно-ориентированные графпакеты.

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

  Мобильность прикладных  программ по отношению к изменению  технических средств обеспечивается  возможностью использования соответствующих  драйверов устройств. Мобильность  относительно ЭВМ обеспечивается  реализацией функционально идентичных  графпакетов для ЭВМ различных типов. Хорошие предпосылки для этого заключаются в решении вопросов стандартизации в машинной графике, которым посвящена глава 3.

* * *

  Основные преимущества  подхода с использованием графпакетов состоят в следующем:

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

2. Легкая расширяемость  за счет написания самим пользователем  подпрограмм, необходимых для  его приложения. Задача системных  программистов состоит в том,  чтобы дать "базисный" пакет,  пригодный для многих пользователей  и многих приложений.

3. Легкая переносимость  прикладной программы на другие  ЭВМ.

4. Легкая адаптируемость к новым требованиям либо аппаратным возможностям.

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

Информация о работе Интерактивные графические системы