- •Вопросы для экзамена по курсу "Компьютерная графика"
- •1. Теоретическая часть.
- •2. Практическая часть.
- •1. Вычислительные средства
- •1. Технические средства ввода графической информации.
- •1. Мышь
- •2. Сканеры
- •3. Световое перо
- •4. Диджитайзер (дигитайзер, digitazer, оцифровыватель)
- •1. Графопостроители (плоттеры)
- •2. Принтеры
- •4. Векторная, растровая и фрактальная графика: суть, отличия, области применения.
- •6. Программное обеспечение
- •7. Общие сведения об AutoCad
- •7. Мировые координаты, нормированные координаты, координаты устройства, функция кадрирования.
- •32. Триангуляция.
- •1. Групповое кодирование
- •2. Кодирование методом Хаффмана
- •3. Схема сжатия lzw
- •4. Арифметическое сжатие
- •5. Сжатие с потерями
- •6. Базовая графика PostScript
- •Наиболее распространенные графические форматы
- •Закрашивание. Световые эффекты. Общие сведения
1. Технические средства ввода графической информации.
1. Мышь
Наиболее распространенным устройством ввода графической информации в ПЭВМ является мышь. Она подключается к компьютеру через интерфейс RS-232. При перемещении мыши и/или нажатии/отпускании кнопок мышь передает в компьютер информацию о своих параметрах (величине перемещения и статусе кнопок). Существует много различных типов устройства мыши, отличающихся как по принципу работы (механический, оптомеханический, оптический), так и по протоколу общения с ЭВМ. "Взаимопонимание" между мышью и ЭВМ при этом достигается с помощью драйвера, поставляемого вместе с мышью. Драйвер отслеживает перемещение мыши и нажатие/отпускание кнопок и обеспечивает работу с курсором мыши на экране дисплея.
Конструктивно близок к мыши манипулятор джойстик. Он представляет собой свободно передвигаемый стержень (ручку) и две кнопки-переключателя. Стержень джойстика передвигается в двух измерениях (координаты Х и Y). Нажатие кнопок-переключателей фиксируется и обрабатывается программно. Обычно джойстик подключается к специальному игровому порту и в настоящее время в машинной графике используется редко.
Работа с мышью организуется через механизм прерываний. Прикладная программа вызывает прерывание 33h, передавая в регистрах необходимые параметры и получая через регистры возвращаемые драйвере) значения. Существуют различные стандарты работы с мышью. Наиболее распространены стандарты IBM Microsoft. Из драйверов наиболее известны 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-битовых величин (int mask[l][15]). Для создания собственного курсора полезна таблица взаимодействия масок:
Маска экрана |
Маска курсора |
Рез-т на экране |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
Не измен. |
1 |
1 |
Инверсия |
Следует обратить внимание на рациональную реализацию обработки событий от мыши. Не требуете; все время опрашивать драйвер мыши. Ему передается адрес функции, которую следует вызвать при наступлении заданного события. Первый параметр - указатель на функцию, второй параметр - маска событий. События соединяются побитовой операцией ИЛИ. Функция, которая обрабатывает событие, получает маску вызывающего события, маску состояния кнопок мыши. координаты курсора мыши.