- •Введение
- •1. Машинная графика и обработка изображения с помощью эвм
- •2. Типы графических устройств
- •2.1. Графические дисплеи на запоминающей трубке
- •2.2. Векторные графические дисплеи с регенерацией изображения
- •2.3. Растровые графические дисплеи с регенерацией изображения
- •2.4. Диалоговые устройства
- •3. Основы растровой графики
- •3.1. Алгоритмы вычерчивания отрезков
- •3.2. Цифровой дифференциальный анализатор
- •3.3. Алгоритм Брезенхема
- •3.4. Целочисленный алгоритм Брезенхема
- •3.5. Общий алгоритм Брезенхема
- •3.6. Алгоритм Брезенхема для генерации окружности
- •4. Растровая развертка изображения
- •4.1. Растровая развертка в реальном времени
- •4.2. Групповое кодирование
- •4.3. Клеточное кодирование
- •4.4. Буферы кадра
- •4.5. Изображение отрезков
- •4.6. Изображение литер
- •4.7. Растровая развертка сплошных областей и заполнение многоугольников
- •1 X 8 – внутри многоугольника;
- •1 Х 4 – внутри многоугольника;
- •6 Х 8 – внутри многоугольника;
- •4.8. Простой алгоритм с упорядоченным списком ребер
- •4.9. Алгоритм заполнения по ребрам
- •4.10. Алгоритм со списком ребер и флагом
- •4.11. Алгоритм заполнения с затравкой
- •4.12. Построчный алгоритм заполнения с затравкой
- •4.13. Основные методы устранения ступенчатости
- •4.14. Аппроксимация полутонами
- •5. Отсечение
- •5.1. Двумерное отсечение
- •5.2. Алгоритм отсечения Сазерленда-Коэна
- •5.3. Алгоритм разбиения средней точкой
- •5.4. Обобщение: отсечение двумерного отрезка выпуклым окном
- •5.5. Алгоритм Кируса–Бека
- •5.6. Внутреннее и внешнее отсечение
- •5.7. Определение факта выпуклости многоугольника
- •5.8. Разбиение невыпуклых многоугольников
- •5.9. Трехмерное отсечение
- •5.10. Определение выпуклости трехмерного тела
- •5.11. Отсечение невыпуклых тел
- •5.12. Отсечение многоугольников
- •5.13. Последовательное отсечение многоугольника – алгоритм Сазерленда – Ходжмена
- •5.14. Невыпуклые отсекающие области – алгоритм
- •5.15. Литеры
- •6. Удаление невидимых линий и поверхностей
- •6.1. Алгоритм плавающего горизонта
- •6.2. Алгоритм Робертса
- •6.3. Алгоритм Варнока
- •6.4. Алгоритм Вейлера–Азертона
- •6.5. Алгоритм, использующий z-буфер
- •6.6. Алгоритмы, использующие список приоритетов
- •6.7. Алгоритм построчного сканирования
- •6.8. Алгоритм построчного сканирования, использующий
- •Библиографический список рекомендуемой литературы
- •Оглавление
- •1. Машинная графика и обработка изображения с помощью эвм….……..3
2.4. Диалоговые устройства
После того как изображение построено на экране, необходимо как-то взаимодействовать с ним или модифицировать его. Для удовлетворения этой потребности был разработан ряд диалоговых устройств. Среди них можно назвать планшет, световое перо, рычаг, мышь, ручки для ввода скалярных величин, функциональные переключатели или кнопки, клавиатура.
Планшет состоит из плоской поверхности и карандаша (похожего на обычный карандаш), который служит для указания точки на поверхности планшета. Обратная связь на экране дисплея обеспечивается с помощью небольшого символа (курсора), отслеживающего перемещение карандаша по поверхности планшета.
Типичным устройством валюатором для ввода одиночной величины, например, одной координаты, является рычаг. Подвижный рычаг обычно образуется двумя валюаторами - либо потенциометрами, либо преобразователями углового положения, смонтированными на основании прибора. Валюаторы выдают результаты, пропорциональные смещению ручки.
Наипростейшими из валюаторов являются ручки для ввода скалярных величин. Такие устройства особенно хорошо подходят для задания начальных значений для функций поворота, переноса, масштабирования.
Кнопки или функциональные переключатели являются переключателями рычажного или нажимного типа. Они могут быть постоянно нажаты, постоянно отжаты, либо иметь кратковременный контакт. Часто кнопки и переключатели включаются в другие устройства (карандаш планшета, мышь и т.д.)
Световое перо предназначено для рисования изображения непосредственно на экране дисплея. Оно представляет собой небольшое устройство, имеющее форму карандаша и способное улавливать свет, излучаемый отдельными точками экрана дисплея.
3. Основы растровой графики
Для работы с устройствами растровой графики нужны специальные методы генерации изображения, вычерчивание прямых и кривых линий, закраски многоугольников.
3.1. Алгоритмы вычерчивания отрезков
Поскольку экран растрового дисплея с ЭЛТ можно рассматривать как матрицу дискретных элементов (пикселов), каждый из которых может быть подсвечен, нельзя непосредственно провести отрезок из одной точки в другую. Процесс определения пикселов, наилучшим образом аппроксимирующих заданный отрезок, называется разложением в растр. В сочетании с процессом построчной визуализации изображения он известен как преобразование растровой развертки. Для горизонтальных, вертикальных и наклонных под углом 45° отрезков выбор растровых элементов очевиден. При любой другой ориентации необходимо выбрать нужные пиксели (рис.1).
-
?
?
?
?
Рис.1. Вычерчивание отрезков
Прежде чем приступать к обсуждению конкретных алгоритмов рисования отрезков, полезно рассмотреть общие требования к таким алгоритмам:
-
очевидно, что отрезки должны выглядеть прямыми, начинаться и заканчиваться в заданных точках;
-
яркость вдоль отрезка должна быть постоянной и не зависеть от длины и наклона;
-
скорость рисования должна быть высокой.
Простой пошаговый алгоритм
В большинстве алгоритмов вычерчивания отрезков для упрощения вычислений используется пошаговый метод. Приведем пример подобного алгоритма:
позиция = начало
шаг = приращение
1) if позиция – конец < точность then 4
if позиция > конец then 2
if позиция < конец then 3
2) позиция = позиция – шаг
goto 1
3) позиция = позиция + шаг
goto 1
4) End