Стандарт GKS.
Лекция № 3
Пользователи машинной графики.
Формирование цвета у принтера.
Базовыми являются цвета CMYK. Именно такими красками заливается картридж. Добавочным является чёрный. Теоретически он не нужен. Оттенок изображения всегда зависит от оттенка листа бумаги.
255 – R Cyan
255 – G Magenta
255 – B Yellow
Как и абсолютно, во всех других областях программирования разделяют три класса: разработчики (Microsoft, Adobe), прикладные программисты, операторы.
В соответствии с таким делением и разграничены права доступа.
Разработан в 1985 году. В этом стандарте впервые определено понятие ядра графической системы (ЯГС). ЯГС отвечает всем общим требованиям построения программных продуктов. Включает в себя пять групп требований, которые обеспечивают универсальность разработки.
1. 1) Совместимость. Должно не иметь противоречий со стандартными прикладными программами.
2) Ортогональность. Внутренние модули и функции не зависят друг от друга.
2. 1) Полнота. Запросы приложений должны выполняться хотя бы на одном функциональном уровне.
2) Неизбыточность. Выбранный уровень сложности не должен иметь функциональных возможностей сложнее, чем необходимо для работы приложения.
3) Компактность. Подразумевает ограничение минимального числа функций и параметров, обеспечивающих работоспособность приложений.
4) Широта. Разбиение действий на различный уровень сложности от самых простейших до интеллектуальных.
3. Интерфейс пользователя.
1) Формируется понятие комфортабельности. Интерфейс должен быть адаптирован для потребностей пользователя.
2) Прозрачность. Ясный, понятный, однозначный.
3) Устойчивость. При любых ошибках в прикладной программе сама система должна остаться работоспособной.
Здесь впервые появляется требование обязательной разработки системы обработки ошибок. Следует сказать, что правильно разработанная прикладная программа должна содержать целую подсистему обработки ошибок.
При выводе не только запрещать запись программы, а выводить информацию об ошибке. Основа для разработки двух стандартов: GUA и CUI.
- на примере Windows.
- шире распространён у пакетов проектирования (все подменю главного меню не накладываются на изображение). Строка статуса располагается внизу.
4. Требования к устройствам ввода, вывода.
1) Приборная независимость. Данные должны формироваться таким способом, что их чтение или запись возможны при подключении произвольного устройства. Реально обеспечивается драйверами (желательно стандартными). Если его нет, то его надо включить в программу.
2) Возможность приборной широты. Произвольный набор периферии. Конфигурация устройств определяется пользователем.
5. Реализуемость.
1) Языковая независимость. Ядро любой системы является набором алгоритмов. Это логическая конструкция. Эту логическую конструкцию нужно описать одним из стандартных продуктов. Разрабатываемый продукт должен работать на одной из ОС.
2) Понятие надёжность. Никакие действия ламера не должны принципиально разрушить вашу программу.
В приведённом выше делении классов можно составить таблицу.
использует
создаёт
использует
Подробнейшая проработка внутри системы ЯГС написано в языконезависимой системе. Каждая функция ядра записывается на некотором языке программирования. Совокупность таких описаний называется языковой оболочкой. Прикладной программист создаёт проблемно-ориентированную оболочку. Она может быть написана на другом языке.
Также в этом стандарте сформулированы понятия примитива и атрибута. Примитивы ввода/вывода – это некоторые базовые графические элементы, используемые для создания изображения. Минимальный набор примитивов оговорён в данном стандарте. Их шесть.
1) Ломаная генерируется из отрезков и координат точек, причём последовательность записи точек определяет порядок их соединения. Линия – частный случай ломаной. Точка – вырожденная линия.
2) Полимаркер – это набор из некоторых символов, которые могут центрироваться в точке с заданными координатами. В системе: + – * и так далее.
3) Текст – это последовательность литер, для которой задаётся первая позиция вывода.
4) Полигональная область. Многоугольник. Задаётся последовательностью точек, очень похожа на ломаную, но последняя точка совпадает с первой. Внутренней области присваивается некоторое свойство.
5) Матрица ячеек – имеет прямоугольный вид, внутри которого каждой точке присваивается свой цвет.
6) Обобщённый примитив вывода – для учёта конкретных устройств вывода на графической станции.
Из стандартного набора можно построить изображение любой сложности. Набор программ всегда из простейших элементов компонует в более сложные примитивы. Каждому примитиву ставится в соответствие набор атрибутов. Атрибуты определяют конкретный вид этого примитива при отображении. Для индикатора целеуказания атрибутом является некоторое число. Это число формируется вследствие действий оператора. Реально использовать, когда несколько примитивов формируются в некоторый сегмент. Для примитива типа линия формируются атрибуты:
типы линии
толщина линии (кратная некоторой базовой)
цвет линии
Для примитива типа текст имеется довольно большое количество атрибутов: шрифт, высота, вертикаль, направление, междулитерный просвет, выравнивание, цвет и т.д.
Для полигональной сетки может задаваться заливка цветом, штриховка и заполнение по шаблону. Хуже всего задаётся заполнение по шаблону (размер шаблона, точка привязки). К этой точке прикрепляется нижний угол выбранного элемента шаблона. Заполнение вправо, вправо вверх.
Атрибуты принято делить на зависимые и независимые. Независимые обязательно устанавливаются глобально после запуска программы и действуют либо до окончания программы, либо до командной строки с отменой их действия. При описании зависимых атрибутов используются индексы. Множество значений атрибутов данного типа называется связкой. Фактически она представляет таблицу, в которую занесено полное значение разновидности этого атрибута. Обращение к ним по индексу.
таблица связок
Первая не зависит от типа графического компьютера. Некоторые виды атрибутов могут задаваться как зависящие или не зависящие от компьютера. Используется глобальный переключатель. Флаг типа атрибут. Если задавать флаг атрибута как независимый, то его изменить нельзя.
Пример. Размер маркера. При пересылке на станцию с другими техническими параметрами можно получить искажения. 256 ® 16.