Назад в библиотеку

Машинная графика

Автор: Вельтмандер П.В
Источник: Вельтмандер П.В. Машинная графика: Учеб. пособие в 3-х кн. Книга 3. Архитектуры графических систем/Новосиб, ун-т. Новосибирск, 1997. 90 с., ил.

Аннотация

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

ИНТЕРАКТИВНЫЕ СИСТЕМЫ МАШИННОЙ ГРАФИКИ

Задача интерактивной системы машинной графики (рис, 0,1,1) при выполнении вывода за-ключается в преобразовании информации из исходного высокоуровневого представления пред¬метной области в представление команд графических устройств вывода. При выполнении вво¬да, наоборот, требуется преобразование низкоуровневой информации от физических устройств ввода в высокоуровневую информацию на языке предметной области.

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

Ввод информации обеспечивается с помощью языка диалога. Диалог обычно осуществля¬ется в виде команд, содержащих числовые значения, имена, координаты, произвольный текст. Выполняя ввод команд пользователь работает с тем или иным набором вводных устройств, определяемых лексикой языка — алфавитно-цифровой и функциональной клавиатурами, ша¬ровым указателем (track ball), планшетом (tablett) и т.п.

Графические языки высокого уровня

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

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

Одним из первых проблемно-ориентированных языков, имеющих средства для описания гео-метрической информации, явился язык APT (AUTOMATED PROGRAMMING TOOLS) [6], Этот язык послужил основой для разработки разнообразных систем автоматизации програм-мирования для станков с ЧПУ,

В работе [1] предложен базовый проблемно-ориентированный язык описания графической информации ОГРА, предназначенный для описания графических конструкторских документов и операций их формирования в системах автоматизированного проектирования,

В работах [4] [5]описан комплекс САГРАФ, предназначенный для использования в учеб¬ной системе коллективного пользования МИФИ для решения задач машинной геометрии и графики, В комплексе имеются подсистемы геометрического синтеза, геометрического анализа и графического моделирования,v

В качестве примеров систем с автономным языком высокого уровня могут также служить системы геометрического моделирования трехмерных тел — СОМРАС [8] и СИМАК-Д [5].

Система СОМРАС (COMPUTER ORIENTED PART CODING) предназначена для форми¬рования описания объемных тел из объемных элементов формы — (метод конструктивной геометрии). Кроме трех базовых объемных элементов (кубы, цилиндры, конусы), могут ис¬пользоваться профилированные детали, получаемые перемещением замкнутого контура вдоль прямой или дуги, а также тела вращения, получаемые вращением замкнутого контура вокруг оси. Элементы задаются, позиционируются и оразмериваются языковыми конструкциями, на¬поминающими APT [57], Составление детали из объемных элементов производится с помощью операций объединения, вычитания и отсечения.

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

Ясно, что автономные графические языки, как всякая специализированная разработка, обладают высокой эффективностью в своей области приложений, однако разработка и исполь¬зование таких языков сопряжена с рядом проблем: - довольно значительные затраты на создание языка и транслятора с него, так, например, трудозатраты на систему СОМРАС составили около 40 ч/лет [8];
- затраты на внедрение, на включение языка в работающую систему программирования и на обучение пользователей, которые не всегда охотно берутся за изучение еще одного языка, а предпочитают пользоваться процедурными расширениями известных им алгоритмических языков: ALGOL, FORTRAN, PL-1, PASCAL и т.д.;
- трудности с последующим расширением языка;
- известные в настоящее время языки машинной геометрии и графики, в отличие от процедур¬ных расширений, как правило, не обеспечивают интерактивного режима, а предназначены для написания пассивных программ;
- затруднено объединение в рамках одной прикладной программы графических и геометри¬ческих действий и обычных вычислений, которое легко реализуется в случае процедурных расширений.

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

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

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

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

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

В качестве одной из отечественных разработок по графическому расширению FORTRANa можно назвать “АВТОКОД для работы с графическим дисплеем ЕС-7064” [3], при использова¬нии которого обеспечивается пакетный режим работы, когда информация только выводится на дисплей. Операторы АВТОКОДа вставляются в текст на FORTRANe и помечаются в первой позиции буквой А, Предусмотрено 6 групп операторов: резервирования памяти и увязывания с массивами FORTRANa; описания точек и процедур; построения совокупностей точек, ломаных, текстов, вызовов процедур; ветвления; гнездования операторов; фрагментирования изображе¬ния на кадры и рисунки.

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

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

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

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

Список использованной литературы

1. Зозулевич Д.М. Машинная графика в автоматизированном проектировании. М.: Машиностроение, 1976. 240 с.
2. Катков В,Л,, Янчук Т.С. Автокод для работы с графическим дисплеем ЕС-7064// Про¬граммное обеспечение машинной графики для решения научно-технических задач, Ново¬сибирск: Институт математики СО АН СССР, 1977, С, 14-35.
3. Климов В.E., Клишин В.В. Принципы построения системы машинного конструирования деталей “СИМАК-Д”// Материалы семинара “Автоматизация проектирования”. М.: Обще¬ство “Знание” РСФСР, Московский Дом научно-технической пропаганды. 1978. С. 130-137.
4. Пилюгин В.В. Структура математического обеспечения графического пакета САГРАФ// Материалы семинара “Автоматизация проектирования”. М.: Общество “Знание” РСФСР, Московский Дом научно-технической пропаганды. 1978. С. 11-15.
5. Пилюгин В.В., Аджиев В.Д., Поляков М.Д. Решение на ЭВМ задач геометрического и графического моделирования// Материалы семинара “Автоматизация проектирования”. М.: Общество “Знание” РСФСР, Московский Дом научно-технической пропаганды. 1981. С. 74-77.
6. APT, Part programming manual, IIT Researh Institute, Chicago, 1964.
7. Dr.Ing. Kurth J. COMPAC Ein System zur rechner-orientierten Werkstuekbesehreibung// Zeitschrift fur wirtschaftliche Fertigung. 1973. V. 68, ь 2. S. 61-67. ь 3. S. 127-132.
6. Smith D.N. GPL/1 — A PL/1 Extension for Computer Graphics// Proc. AFIPS Spring Joint Computer Conference, 1971, pp. 511-538.
7. Spur G., Schliep W. Integration of Mechanical calculation programs in CAD Systems// Proc. of 5th International Conference and exhibition on Computers in Desing Engineering. Brighton Metropole Sussex, UK, 30 March — 1 April 1982, p. 615-631.