Формирование цвета у принтера.
Базовыми являются цвета CMYK. Именно такими красками заливается картридж. Добавочным является чёрный. Теоретически он не нужен. Оттенок изображения всегда зависит от оттенка листа бумаги.
255 – R Cyan
255 – G Magenta
255 – B Yellow
Пользователи машинной графики.
Как и абсолютно во всех других областях программирования разделяют три класса: разработчики (Microsoft, Adobe), прикладные программисты, операторы.
В соответствии с таким делением и разграничены права доступа.
Лекция № 3
Стандарт GKS.
Разработан в 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) Обобщённый примитив вывода – для учёта конкретных устройств вывода на графической станции.
Из стандартного набора можно построить изображение любой сложности. Набор программ всегда из простейших элементов компонует в более сложные примитивы. Каждому примитиву ставится в соответствие набор атрибутов. Атрибуты определяют конкретный вид этого примитива при отображении. Для индикатора целеуказания атрибутом является некоторое число. Это число формируетcя в следствие действий оператора. Реально использовать, когда несколько примитивов формируются в некоторый сегмент. Для примитива типа линия формируются атрибуты:
типы линии
толщина линии (кратная некоторой базовой)
цвет линии
Для примитива типа текст имеется довольно большое количество атрибутов: шрифт, высота, вертикаль, направление, междулитерный просвет, выравнивание, цвет и т.д.
Для полигональной сетки может задаваться заливка цветом, штриховка и заполнение по шаблону. Хуже всего задаётся заполнение по шаблону (размер шаблона, точка привязки). К этой точке прикрепляется нижний угол выбранного элемента шаблона. Заполнение вправо, вправо вверх.
Атрибуты принято делить на зависимые и независимые. Независимые обязательно устанавливаются глобально после запуска программы и действуют либо до окончания программы, либо до командной строки с отменой их действия. При описании зависимых атрибутов используются индексы. Множество значений атрибутов данного типа называется связкой. Фактически она представляет таблицу, в которую занесено полное значение разновидности этого атрибута. Обращение к ним по индексу.
таблица связок
Первая не зависит от типа графического компьютера. Некоторые виды атрибутов могут задаваться как зависящие или не зависящие от компьютера. Используется глобальный переключатель. Флаг типа атрибут. Если задавать флаг атрибута как независимый, то его изменить нельзя.
Пример. Размер маркера. При пересылке на станцию с другими техническими параметрами можно получить искажения. 256 ® 16.
Сегментация.
Сегментом называется совокупность примитивов с которым можно оперировать как с единым целым. Однако, атрибуты для сегмента могут назначаться глобально так и для отдельных его частей. Любой сегмент должен иметь уникальное имя. Как формируется сегмент? Пишется небольшая прикладная программа.
1) Открыть сегмент;
2) Как бы суммируем: С = k1ПВ1 + k3ПВ3 + …;
3) Закрыть сегмент.
После того, как мы выполнили эту подпрограмму в сегмент нельзя ничего добавить или удалить его часть. Если необходима разница в одном элементе, то необходимо создавать новый сегмент. Пусть нужная картинка находится в CN.
1) Открываем CN+1
2) CN+1= CN+kiПВ3
3) Закрываем CN+1
Пример. Треугольник. Примитивы вывода 3 линии.
(1,0)
2) C=LIN (0,0;1,0) + LIN (1,0;0,1) + LIN (1,0;0,0)
(0,0) (0,1)
Что плохо для сегмента? На разных станциях нельзя присвоить разные атрибуты. Для сегментов наиболее важными параметрами являются:
1) Приоритет. Он определяет, какой из двух сегментов будет виден при наложении друг на друга. Чем выше приоритет, тем более в высоком слое он будет.
2) Чувствительность. Для сегмента определяется чувствительность, то есть доступность сегмента на конкретной станции.
3) Выделение яркостью или цветом выбранного сегмента.
4) Видимость. Некоторые файлы не открываются на конкретном компьютере.
Преобразования над сегментом всегда выполняются в нормированных координатах до выполнения отсечения и в следующем порядке: сдвиг ® масштаб ® поворот.
В стандарте GKS есть понятие памяти сегментов. Есть два типа памяти.
1) Общая память сегментов.
2) Память графической станции.
В случае 1 сегменты хранятся в нормированных координатах. На рабочей станции копируются, на рабочей станции им присваиваются атрибуты. Без специальных прав удалить сегмент нельзя из общей памяти. В случае 2 при расположении сегментов на рабочей станции их можно удалять, сливать и пересылать на другую станцию.
При случае 1 система надёжнее.
Дата добавления: 2016-07-27; просмотров: 1490;