- •Вопросы для экзамена по курсу "Компьютерная графика"
- •1. Мышь
- •2. Сканеры
- •3. Световое перо
- •4. Диджитайзер (дигитайзер, digitazer, оцифровыватель)
- •1. Графопостроители (плоттеры)
- •2. Принтеры
- •1. Групповое кодирование
- •2. Кодирование методом Хаффмана
- •3. Схема сжатия lzw
- •4. Арифметическое сжатие
- •5. Сжатие с потерями
- •6. Базовая графика PostScript
- •Наиболее распространенные графические форматы
- •Закрашивание. Световые эффекты. Общие сведения
1. Мышь
Наиболее распространенным устройством ввода графической информации в ПЭВМ является мышь. Она подключается к компьютеру через интерфейсRS-232. При перемещении мыши и/или нажатии/отпускании кнопок мышь передает в компьютер информацию о своих параметрах (величине перемещения и статусе кнопок). Существует много различных типов устройства мыши, отличающихся как по принципу работы (механический, оптомеханический, оптический), так и по протоколу общения с ЭВМ. "Взаимопонимание" между мышью и ЭВМ при этом достигается с помощью драйвера, поставляемого вместе с мышью. Драйвер отслеживает перемещение мыши и нажатие/отпускание кнопок и обеспечивает работу с курсором мыши на экране дисплея.
Конструктивно близок к мыши манипулятор джойстик. Он представляет собой свободно передвигаемый стержень (ручку) и две кнопки-переключателя. Стержень джойстика передвигается в двух измерениях (координаты Х иY). Нажатие кнопок-переключателей фиксируется и обрабатывается программно. Обычно джойстик подключается к специальному игровому порту и в настоящее время в машинной графике используется редко.
Работа с мышью организуется через механизм прерываний. Прикладная программа вызывает прерывание 33h, передавая в регистрах необходимые параметры и получая через регистры возвращаемые драйвере) значения. Существуют различные стандарты работы с мышью. Наиболее распространены стандартыIBMMicrosoft. Из драйверов наиболее известныmouse.coinиgmouse.comОни поддерживают множество функции мыши, связанных с внешним видом, положением и перемещением курсора, а также с определением состояния кнопок мыши. Для программирования той или иной функции мыши требуется только знать ее номер и параметры, заносимые в регистры перед вызовом прерывания. Обычно номера функций драйвера заменяются их мнемоническими именами в заголовочном файле (например,mouse.h), сами тексты функций собираются в отдельный файле (например,mouse.cpp). Такая пара (mouse.hиmouse.cpp) ориентируется на конкретный драйвер. В [1,4] приводятся варианты программного обеспечения - для драйверовmouse.comиgmouse.com.
Любая библиотека обычно содержит следующие функции:
проверка наличия мыши;
показ/сокрытие курсора мыши (при сокрытии драйвер мыши продолжает отслеживать ее перемещение);
чтение состояния мыши (ее координат и состояния кнопок - нажато/отжато);
передвижение курсора мыши в заданную точку;
установка области перемещения курсора мыши.
По умолчанию форма курсора мыши определяется оборудованием и драйвером. Ее можно изменить. В текстовом режиме курсор мыши отображается на экране совместно с текстовым курсором и представляет собой прямоугольник размером в один символ. Вид изображения при перекрытии курсором мыши чего-либо определяется параметром и передаваемыми функции изображения курсора текстового режима. Эти параметры (маска экрана и маска курсора) состоят из 16 бит и задают мерцание, цвет и фон, также изображаемый при наложении курсора символ. Маска экрана участвует в логической операции ANDс атрибутами перекрытого участка экрана, далее выполняется операцияXORс маской курсора. Например, для инвертирования изображения маска экрана - 0xFFFF, маска курсора - 0х770.
В графическом режиме также имеется курсор по умолчанию (от драйвера). Обычно это небольшая стрелка. Вид курсора также можно изменить. Над маской экрана и маской курсора выполняются аналогично текстовому режиму операцииANDи XOR. Но под каждую маску отводится не 16 бит, а по 16 16-битовых величин (intmask[l][15]). Для создания собственного курсора полезна таблица взаимодействия масок:
Маска экрана
Маска курсора
Рез-т на экране 0 0 0 0 1 1 1 0
Не измен. 1 1
Инверсия