ivanstudent

Путь к Файлу: /Введение в компьютерную графику / 15 / 23-30.DOC

Ознакомиться или скачать весь учебный материал данного пользователя
Скачиваний:   0
Пользователь:   ivanstudent
Добавлен:   24.12.2014
Размер:   62.5 КБ
СКАЧАТЬ

2. ЯДРО ГРАФИЧЕСКОЙ СИСТЕМЫ

 

2.1. Понятие о ядре графической системы

 

Ядро графической  системы (ЯГС)  - первый международный стандарт в области машинной графики.

Этот стандарт определяет:

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

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

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

Самое важное преимущество, получаемое за счет наличия ЯГС:

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

ЯГС разделяет всех пользователей машинной графики на три группы.

 

1. Разработчик.

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

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

 

2. Прикладной программист.

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

 

3. Оператор.

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

 

2.2. Принципы, цели, основные понятия ЯГС

 

Основные принципы,  в соответствии с которыми вводится  ЯГС  как международный стандарт (т.е. для чего вообще он нужен):

1. Обеспечение возможности переноса прикладных программ  с  одной установки на другую.

2. Оказание помощи прикладным программистам в понимании и  применении графических методов.

3. Ориентирование производителей оборудования на правильный выбор возможностей создаваемых устройств.

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

1. Согласованность: обязательные  требования  стандарта не должны противоречить друг другу. Это простое на первый взгляд и естественное требование нарушается уже перечисленными ниже принципами. По существу такое положение отражает простую истину: нельзя создать сложную систему (не только в компьютерной графике) без противоречий между составляющими ее отдельными подсистемами.

2. Совместимость: другие стандарты или общепризнанная практика не должны нарушаться. Применительно к графическим системам это означает, например, что большинство требований ГОСТ или ЕСКД при выполнении чертежей должны выполняться если не автоматически, то при минимальных усилиях пользователя – система должна быть «настроена» на их выполнение. На примере системы Автокад очень показательны в этом отношении способы простановки размеров на любом чертеже или на любой схеме – их практически невозможно поставить неправильно, сама система делает это в соответствии с правильно сделанными нами установками.

3. Ортогональность: функции и модули системы должны быть независимыми друг от друга; если же такая зависимость имеется, то она должна быть четко определенной. Здесь имеется в виду то обстоятельство, что графический пакет, как любая программа, не может работать с неопределенным и неясным алгоритмом. Поэтому если внутри пакета отдельные части программного комплекса могут влиять друг на друга, это влияние должно быть понятным.

4. Полнота: все запросы  большинства  приложений  (пользователей) должны выполняться  на  каком-либо  функциональном уровне реализации графической системы. Здесь следует пояснить, что реализация графического пакета может в соответствии с ЯГС проводиться на разных функциональных уровнях. В простейшем варианте реализации, по существу, просто возникает возможность рисовать графические примитивы. В наиболее сложном варианте допускается построение и преобразование, в том числе динамическое, сложных геометрических объектов.

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

6. Компактность: результат  должен достигаться минимальным числом функций и их параметров. Например, для построения отрезка можно (теоретически) задавать сколько угодно точек, лежащих внутри него. Но минимальное число точек – две, и для рисования отрезка требуется 4 числа – это две пары координат х и у для двух концов отрезка, или пара координат начала отрезка, и два числа, характеризующих направление и длину отрезка от начальной точки. В любом случае этих четырех чисел вполне достаточно для однозначного построения отрезка, и соответствующая команда настроена на ввод именно такого количества числовых значений. Если попытаться ввести больше чисел, графическая система либо не сработает и выдаст соответствующий запрос, либо среагирует на первые четыре числа и проигнорирует ввод остальных.

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

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

8. Комфортабельность: должна быть обеспечена адаптация  графической системы к нуждам пользователя. Это требование означает, что система может быть так «отрегулирована» пользователем, что при работе с ней не нужно каждый раз проводить ее настройку «под себя». Это отражается в возможности создания собственных рисунков-прототипов, в создании своих библиотек стандартных элементов чертежей и схем, в организации своего меню часто встречающихся команд и т.д.

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

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

10. Устойчивость: реакция  графической  системы на ошибку программиста должна быть минимальной и понятной для пользователя. Это означает, что при случайной или преднамеренной ошибке система не должна «зависать», уничтожать нарисованный чертеж или схему и т.п., а выдавать диагностику ошибки и по возможности рекомендации по ее устранению.

11. Приборная независимость: прикладная программа,  использующая возможности графической системы, может обращаться к различным устройствам ввода-вывода без предварительного изменения функций. Это означает, что в процессе установки графической системы на ПК с конкретной конфигурацией система сама, в автоматическом режиме, настраивается на все ее устройства и какая-либо переналадка ни конфигурации компьютера, ни графической системы не требуется. Более того, должно обеспечиваться соответствие любого чертежа или рисунка на экране с его «твердой копией», выводимой на принтер или графопостроитель. При этом при необходимости пользователь имеет возможность менять масштаб выводимого рисунка, в том числе неодинаково по разным осям.

12. Приборная широта:  возможности всех графических устройств ввода-вывода должны использоваться в стандартном графическом  пакете  в полном объеме. Это требование легко проиллюстрировать на примерах такого рода. Известно, что тип и качество монитора определяют четкость построенного на нем изображения. Графическая система автоматически заставляет строить изображение на мониторе с наибольшей доступной четкостью, не требуя при этом каких-либо дополнительных действий или команд. То же самое можно сказать про возможности принтера, графопостроителя и т.д.

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

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

15. Эффективность: стандарт должен быть реализуем без  привлечения алгоритмов, требующих больших временных затрат. Это согласуется с требованием комфортности, обсуждавшимся выше. При построении и преобразовании графических объектов почти любая конкретная задача может быть решена различными способами, и стандарт требует выбора наиболее быстро работающего.

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

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

 

Основные задачи, которые должна решать графическая система:

1. Делать синтез изображений и их воспроизведение.

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

3. Управлять работой всех доступных станций (мониторы, принтеры и т.д.).

4. Обслуживать ввод данных со станции.

5. Позволять делать при необходимости разбиение  изображения  на части и работать с каждой частью независимо от других.

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

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

2. Системы координат: пользователь может работать с примитивами и затем выводить их на графические станции с различными приборными системами координат;  управление этим процессом должна брать на себя графическая система.

3. Концепция графических станций: устройства ввода-вывода (дисплей, принтер, графопостроитель) объединяются понятием «рабочая станция» или просто станция.

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

5. Сегментация: разделение  изображения на части (сегменты) и работа с ними,  причем есть возможность  обрабатывать  их  независимо друг от друга, вставлять и удалять эти части, копировать, масштабировать, поворачивать и т.д.

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

7. Таблица состояний определяет функциональное состояние графической системы (конфигурацию). Это позволяет, в частности, настраивать графический пакет и под конкретные аппаратные конфигурации.

8. Концепция уровней  системы:  все  функции  ЯГС  соотнесены с 9 уровнями, при этом в нижний уровень входит минимальный  набор  функций, обслуживающий только вывод, а верхнему отвечают все возможности ЯГС. Разработчик должен реализовать только тот уровень системы,  который необходим для данных приложений.

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

10. Размерность системы координат:  в настоящее время ЯГС является двумерной системой.  Это удовлетворяет большинству практических запросов, когда все вводимые и выводимые позиции располагаются  в  двумерном пространстве.  Если  предусматривать  операции  в  трехмерном пространстве, это потребует введения новых уровней системы выше  девятого.

 

2.3. Примитивы вывода и атрибуты

 

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

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

ЯГС как стандарт определяет обязательный набор примитивов:

1. Ломаная. Следует обратить внимание, что в Автокаде такой команды нет. Но если внимательно проследить, как работает команда «Отрезок», то это по существу и есть команда построения ломаной как серии последовательно соединенных отрезков.

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

3. Текст. Внутри графического редактора как бы встроен текстовый, но при этом создаваемый единой командой «Текст» массив буквенных, цифровых и других символов является одним примитивом. Удаление единственного символа из этого массива после создания примитива невозможно – в соответствии с определением примитива будет удален весь массив.

4. Полигональная область – пустой,  закрашенный или заштрихованный многоугольник. Например, в Автокаде этот примитив представляет собой обычный замкнутый многоугольник, число сторон которого – от              3 до 1024 – задается пользователем.

5. Матрица ячеек - обобщение матрицы пикселей растрового устройства. Это матрица ячеек,  каждая из которых может иметь свой цвет или яркость. Сама такая матрица может рассматриваться как растр, но это уже не технический, а математический растр. Использование такого «растра» можно часто увидеть на телевидении – когда на месте обычного изображения лица человека, узнавание которого нежелательно, помещается своего рода маска. Она и представляет собой матрицу ячеек, каждая из которых включает в себя определенное количество точек технического растра, обычно при этом атрибуты этой ячейки (цвет, яркость) имеют средние значения по соответствующему ансамблю элементов технического растра.

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

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

 

2.4. Системы координат

 

Мы уже  знаем мировую и пользовательскую системы координат.  МСК встроена в графическую систему ее разработчиком, ПСК  пользователь определяет сам. Помимо этого, ЯГС определяет еще следующие системы координат.

Нормированные координаты - это заданные независимо от конкретного устройства координаты,  меняющиеся в диапазоне от 0 до 1.

Если координаты (х, у) любого устройства – монитора, принтера и т.д. – могут меняться в пределах  0 <= x <= хmax , 0 <=y <= ymax, то нормированные координаты вводятся с помощью следующих соотношений:  

x := x/xmax,  y := y/ymax.

 

Очевидно, что пределы изменения величин х, у  и будут 0 и 1. Их использование приводит к тому,  что на экране любого размера мы  видим одно и то же изображение (как в телевизоре с любым размером экрана мы видим изображение полностью, а не часть его – на маленьком экране). Нормированные координаты применяются при запоминании изображений (поэтому рисунок,  выполненный на  одном  экране,  будет совершенно таким же на другом),  при сегментации изображений и разного рода их преобразованиях.

 

Наверх страницы

Внимание! Не забудьте ознакомиться с остальными документами данного пользователя!

Соседние файлы в текущем каталоге:

На сайте уже 21970 файлов общим размером 9.9 ГБ.

Наш сайт представляет собой Сервис, где студенты самых различных специальностей могут делиться своей учебой. Для удобства организован онлайн просмотр содержимого самых разных форматов файлов с возможностью их скачивания. У нас можно найти курсовые и лабораторные работы, дипломные работы и диссертации, лекции и шпаргалки, учебники, чертежи, инструкции, пособия и методички - можно найти любые учебные материалы. Наш полезный сервис предназначен прежде всего для помощи студентам в учёбе, ведь разобраться с любым предметом всегда быстрее когда можно посмотреть примеры, ознакомится более углубленно по той или иной теме. Все материалы на сайте представлены для ознакомления и загружены самими пользователями. Учитесь с нами, учитесь на пятерки и становитесь самыми грамотными специалистами своей профессии.

Не нашли нужный документ? Воспользуйтесь поиском по содержимому всех файлов сайта:



Каждый день, проснувшись по утру, заходи на obmendoc.ru

Товарищ, не ленись - делись файлами и новому учись!

Яндекс.Метрика