Графические стандарты
При автоматизированном проектировании металлических конструкций часто возникает необходимость обмениваться графической информацией между различными подсистемами, которые в общем случае могут быть реализованы не только в различной программной среде, но и на различных аппаратных средствах. При этом важно правильно выбрать формат записи данных, который, с одной стороны, должен обеспечивать минимальный размер файлов, а с другой — сохранение точности графической модели изделия. Поэтому рассмотрим подробнее вопросы кодирования графической информации или, сокращенно, графические форматы.
Для записи графической информации используются два принципиально различных способа — растровый и векторный. Первый способ применяется при обработке изображений, полученных при помощи сканера, а также при редактировании фотоизображений; второй — в системах автоматизированного проектирования и графических пакетах.
Растровый файл описывает изображение как совокупность точек (dots), число которых определяется разрешением, измеряемым в специальных единицах — dpi или dpc (число точек на 1 дюйм или на 1 см соответственно). Для цветных и полутоновых изображений определяется также «глубина цвета» — число двоичных разрядов, отводимых для хранения информации о цвете. Например, для изображений типа RGB глубина 24 разряда означает, что на каждый основной цвет (красный — R, зеленый — G, синий — В) отводится по 8 разрядов и можно закодировать 224 « 16 млн цветов.
Основной недостаток растровых форматов — большой объем файлов, описывающих изображение. Так, даже для растрового изображения со сравнительно невысоким разрешением 1024 х 768 точек и 256 цветами требуется файл размером 768 кб. Поэтому в графических пакетах используются различные алгоритмы сжатия, что затрудняет преобразование растровых форматов и создает множество проблем для пользователей.
Векторный файл описывает изображение как совокупность простейших элементов (линия, ломаная, кривая Безье, эллипс, прямоугольник и т. д.), для каждого из которых задаются соответствующие атрибуты: координаты вершин или других характерных точек, толщина и цвет контурной линии, тип и цвет заливки и т. д. Кроме того, задается расположение элементов относительно друг друга (какой из них расположен сверху, а какой — снизу).
Главное достоинство векторных файлов по сравнению с растровыми — меньший размер и удобство редактирования, но при их выводе на экран производится множество математических операций. Поэтому скорость вывода векторных изображений обычно меньше, чем растровых, хотя этот недостаток довольно эффективно устраняется при помощи специальных процессоров — графических ускорителей.
Существует целый ряд программ, переводящих графические данные из векторного формата в растровый. Но обратная задача (перевод растровых
изображений в векторные) является довольно сложной и решается только в наиболее совершенных графических пакетах. Не менее сложные проблемы возникают и при преобразованиях одного векторного формата в другой, так как многие графические пакеты используют уникальные математические модели для элементов изображения. В настоящее время применяют несколько десятков форматов представления графических данных. Рассмотрим наиболее распространенные из них.
BMP-формат реализует растровый способ представления графических данных и поддерживается практически любым Windows-приложением. Его главная особенность — независимость от типа адаптера и монитора при кодировании цвета. Для сжатия данных используется алгоритм RLE (Run- Length Encoded), но размер файлов довольно большой.
CGM-формат (Computer Graphics Metafile) относится к классу «метафайлов», т. е. обеспечивает кодирование как векторных, так и растровых изображений. Его основное достоинство — независимость от аппаратных и программных средств, что позволяет эффективно осуществлять обмен данными между различными программами и платформами. Но для хранения чертежей и рисунков этот формат практически не применяется.
DXF-формат {Drawing eXchange Format) является векторным и поддерживается практически всеми САПР и графическими пакетами, включая AutoCAD. В нем реализованы многие возможности, отсутствующие в других форматах, например хранение трехмерных объектов. Однако из-за сложности этого формата некоторые приложения позволяют только читать DXF-файлы, но не используют его при сохранении изображений.
EPS-формат {Encapsulated PostScript) использует как векторный, так и растровый способы записи графических данных. Соответствующий файл представляет собой набор команд, выполняемых интерпретатором языка PostScript при выводе изображения. При этом EPS-файл не зависит ни от операционной системы, ни от аппаратных средств. Однако программы, поддерживающие этот формат, часто не обеспечивают полной совместимости.
HPGL-формат {Hewlett-Packard Graphical Language) относится к классу векторных и является одним из основных для систем автоматизированного проектирования. Он широко используется также при выводе чертежей на плоттеры и принтеры.
IGES-формат {International Graphical Exchange Standard) представляет собой набор протоколов для передачи графических данных и вывода их на экран монитора. Первоначально он применялся для поддержки удаленных терминалов, но в настоящее время используется в ряде CAD-приложений, оперирующих с трехмерными изображениями.
PCX-формат относится к классу растровых. Первоначально он использовался в программе PaintBrush, но постепенно получил широкое рас-
2 6705
пространение в других графических редакторах. Его недостатком является зависимость от типа используемого видеоадаптера. В PCX-файлах используется алгоритм сжатия RLE, позволяющий уменьшать размер файла на
40.. .70 %, если число цветов не превышает 16.
РІСТ-формат относится к классу «метафайл», т. е. дает возможность кодировать как векторные, так и растровые изображения. Он ориентирован на платформы типа Macintosh и поддерживается практически любым графическим приложением, реализованным на таких аппаратных средствах. Ввиду своей сложности этот формат редко поддерживается приложениями, работающими на других платформах.
TIFF-формат {Tagged Image File Format) относится к классу растровых и позволяет обеспечивать переносимость графических файлов с IBM-совместимых компьютеров на Macintosh и обратно. Существует несколько типов TIFF-файлов: В — чернобелые изображения, G — полутоновые, Р — цветные и т. д. Формат TIFF очень удобен, но приводит к очень большим размерам файлов (например, цветное изображение размера А4 при разрешении 300 dpi может занимать около 40 Мб).
WMF-формат (Windows MetaFile) обеспечивает кодирование как векторных, так и растровых данных и является аналогом формата PICT для оболочки Windows. Он используется при обмене графическими данными между Windows-приложениями, а также поддерживается графическими программами, реализованными на ряде других платформ.
При организации обмена графической информацией в компьютерной графике различают несколько уровней графических стандартов (рис. 1.17). Эти стандарты обеспечивают связь между:
а) графическими утилитами и устройствами графического вывода;
б) прикладными программами и графическими утилитами;
в) различными САПР.
Для обеспечения связи между графическими утилитами и устройствами вывода наиболее часто используется стандарт VDI (Virtual Device Interface — интерфейс виртуального устройства), который в настоящее время переименован в CGI (Computer Graphics Interface — интерфейс компьютерной графики).
Наиболее распространенным стандартом, обеспечивающим связь между прикладными программами и графическими утилитами, является GKS (Graphical Kernel System — графическая корневая система). Иногда используется и более ранний стандарт CORE, основные функции которого реализованы в GKS. А наиболее совершенным из стандартов этого класса является PHIGS (Programmers Hierarchical Interface for Graphics — программистский иерархический графический интерфейс), описывающий сложные иерархические структуры графических данных, в том числе и трехмерные.
Для обеспечения связи между различными САПР используется ряд стандартов, наиболее распространенным из которых является IGES (Initial Graphics Exchange Specification — стандартный протокол обмена графической информацией). В этом стандарте различные данные классифицируются в терминах сущностей, которые могут принадлежать к одной из трех категорий: геометрии (точки, отрезки, дуги, плоскости и т. п.), аннотации (размеры, осевые линии, стрелки и т. п.), структуры (геометрические группы, макроопределения и т. д.). Чтобы использовать IGES, любая САПР снабжается двумя программами — препроцессором и постпроцессором (рис. 1.18).
Международный стандарт GKS (Grapfical Kernel System) принят в 1985 г. и предназначен для обеспечения переносимости и совместимости программных средств машинной графики. Согласно этому стандарту, любое изображение должно строиться из типовых базовых элементов — примитивов вывода (рис. 1.19). В GKS определено шесть основных примитивов вывода: полимаркер, полилиния, текст, заполнение области, массив пикселей, обобщенный примитив вывода.
Полимаркер используется для указания характерных точек на экране, которые отображаются в виде ярких точек, крестов, квадратов и т. д. Поли-
Рис. 1.19. Основные графические примитивы вывода GKS
линия представляет собой набор отрезков прямых (ломаную), соединяющую заданную последовательность точек. Примитив текст — это строка символов, располагающаяся в указанной позиции.
Примитив заполнение области представляет собой многоугольник, заполненный штриховкой, узором или фоновой окраской. Примитив «массив пикселей» позволяет задать цвет индивидуально для каждой точки некоторой области (пикселя). И наконец, обобщенный примитив вывода представляет собой стандартное средство определения более сложных элементов (прямоугольник, эллипс и т. д.), вид и количество которых зависят от специфики конкретных графических пакетов.
С каждым из примитивов в GKS связан набор параметров — атрибутов, определяющих его геометрические и качественные свойства. Примеры атрибутов для основных примитивов вывода приведены в табл. 1.1.
GKS позволяет разделить изображение на отдельные сегменты, которые могут обрабатываться и отображаться независимо друг от друга. Предусмотрены также средства для включения одного сегмента в другой. При создании графической модели объекта и его изображения используются три типа систем координат: глобальная, нормализованная приборная и собственно приборная.
Таблица 1.1. Атрибуты основных примитивов вывода GKS
|
Ввод в GKS определяется как связь с одним из пяти допустимых логических устройств ввода:
ЛОКАТОР — выдает положение в глобальной системе координат;
ЗНАЧЕНИЕ — выдает значение числа;
ВЫБОР — выдает целое число, определяющее один из возможных вариантов ответа;
УКАЗАНИЕ — выдает имя сегмента и идентификатор примитива;
СТРОКА — обеспечивает ввод строки символов.
Ввод может происходить в одном из трех режимов: запрос, опрос, событие. Первый из указанных режимов (запрос) аналогичен операции чтения обычных языков программирования: система ожидает, пока не произошло событие ввода, после чего передает в программу соответствующее значение. При этом в любой момент допустимо наличие только одного запроса на ввод. Второй режим (опрос) применяется для ввода от таких устройств, у которых на выходе постоянно существует какое-либо значение (например, положение указателя мыши). А третий режим (событие) используется для ввода от устройств, инициирующих прерывания. Эти прерывания запоминаются в очереди и обрабатываются в соответствии с принятой дисциплиной обслуживания.
Появление GKS в качестве первого международного стандарта оказало существенное влияние на развитие машинной графики и ее применение в САПР.