Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 3.docx
Скачиваний:
11
Добавлен:
27.08.2019
Размер:
61.8 Кб
Скачать

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

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

Рис. Концептуальная модель интерактивной системы машинной графики с явным выделением графической компоненты

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

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

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

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

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

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

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

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

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

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

По иерархическому принципу организовано большинство графических систем, наряду с упомянутыми GIND-3D и ГРАФОРом можно назвать, например, СМОГ, АТОМ, ДИГРАФ, ГРАФСМ, АНЕГРАФ, АТЛАНТ, УНИГРАФ, ГРАС и целый ряд других.

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

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

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

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

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

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

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

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

Очевидными недостатками такого подхода являются:

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

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

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