- •Федеральное агентство по образованию
- •Глава 3. Растровая графика. Базовые растровые алгоритмы 37
- •Глава 4. Векторная графика 77
- •Глава 5. Фрактальная графика 90
- •Глава 6. Цветовые модели компьютерной графики 95
- •Глава 7. Методы и алгоритмы построения сложных трехмерных объектов 128
- •Глава 8. Реалистическое представление сцен 146
- •Глава 9. Архитектуры графических систем 172
- •Глава 10. Стандартизация в компьютерной графике 180
- •Глава 11. Форматы графических файлов 196
- •Глава 12. Технические средства кг (оборудование кг) 214
- •Глава 1. Основные понятия
- •1.1 Разновидности компьютерной графики
- •Полиграфия
- •Мультимедиа
- •Сапр и деловая графика
- •Геоинформационные системы (гис)
- •1.2. Принципы организации графических программ
- •Растровые программы
- •Векторные программы
- •Фрактальные программы
- •Глава 2. Координаты и преобразования
- •2.1 Координатный метод
- •2.1.1. Преобразование координат
- •Простейшие двумерные преобразования
- •Однородные координаты и матричное представление двумерных преобразований
- •Композиция двумерных преобразований
- •Матричное представление трехмерных преобразований
- •Композиция трехмерных преобразований
- •Преобразование объектов
- •Преобразование как изменение систем координат
- •2.1.2 Аффинные преобразования на плоскости
- •2.2 Проекции
- •2.2.1 Мировые и экранные координаты
- •2.2.2 Основные типы проекций
- •При повороте на угол β относительно оси у (ординат), на угол α вокруг оси х (абсцисс) и последующем проектировании осиZ (аппликат) возникает матрица
- •Глава 3. Растровая графика. Базовые растровые алгоритмы
- •3.1 Растровые изображения и их основные характеристики
- •3.2 Вывод изображений на растровые устройства
- •3.3 Методы улучшения растровых изображений
- •3.21. Диагональное расположение ячеек 5x5
- •3.22. Диагональные структуры: а - сдвиг строк ячеек, б - ячейки другого типа
- •3.24. Набор чм-ячеек 5x5
- •3.4. Базовые растровые алгоритмы Алгоритмы вывода прямой линии
- •Инкрементные алгоритмы
- •Кривая Безье
- •Алгоритмы вывода фигур
- •Алгоритмы закрашивания
- •Стиль заполнения
- •3.5 Инструменты растровых графических пакетов
- •Инструменты выделения. Каналы и маски
- •Выделение
- •Инструменты выделения и маскирования
- •Гистограммы
- •Тоновая коррекция изображения
- •Уровни (Levels)
- •Цветовая коррекция и цветовой баланс
- •Фильтры (Plug-ins) и спецэффекты (Effects)
- •3.6 Преимущества и недостатки растровой графики
- •Глава 4. Векторная графика
- •4.1 Средства создания векторных изображений
- •4.2 Сравнение механизмов формирования изображений в растровой и векторной графике
- •4.3 Структура векторной иллюстрации
- •4.4 Математические основы векторной графики
- •4.5. Элементы (объекты) векторной графики
- •4.6. Достоинства и недостатки векторной графики
- •Глава 5. Фрактальная графика
- •5.1 Математика фракталов. Алгоритмы фрактального сжатия изображений
- •5.2 Обзор основных фрактальных программ
- •Глава 6. Цветовые модели компьютерной графики
- •6.1 Элементы цвета
- •6.1.1 Свет и цвет
- •6.1.2 Физическая природа света и цвета
- •6.1.3 Излученный и отраженный свет
- •6.1.4 Яркостная и цветовая информация
- •6.1.5 Цвет и окраска
- •6.2 Характеристики источника света
- •Стандартные источники
- •6.2.2 Особенности восприятия цвета человеком
- •Колбочки и палочки
- •Спектральная чувствительность глаза к яркости
- •Спектральная чувствительность наблюдателя
- •6.3 Цветовой и динамический диапазоны
- •6.4 Типы цветовых моделей
- •6.4.1 Аддитивные цветовые модели
- •Почему rgb-модель нравится компьютеру?
- •Ограничения rgb-модели
- •SRgb — стандартизированный вариант rgb-цветового пространства
- •6.4.2 Субтрактивные цветовые модели
- •Цветовая модель cmy
- •Ограничения модели cmyk
- •Возможности расширения цветового охвата cmyk
- •6.4.3 Перцепционные цветовые модели
- •Достоинства и ограничения hsb-модели
- •6.4.4 Системы соответствия цветов и палитры
- •Системы соответствия цветов
- •Назначение эталона
- •Кодирование цвета. Палитра
- •Глава 7. Методы и алгоритмы построения сложных трехмерных объектов
- •7.1 Модели описания поверхностей
- •7.1.1. Аналитическая модель
- •7.1.2 Векторная полигональная модель
- •7.1.3 Воксельная модель
- •7.1.4 Равномерная сетка
- •7.1.5 Неравномерная сетка. Изолинии
- •7.2. Визуализация трехмерных объектов
- •7.2.1 Каркасная визуализация
- •7.2.2 Показ с удалением невидимых точек
- •Глава 8. Реалистическое представление сцен
- •8.1 Закрашивание поверхностей
- •8.1.1 Модели отражения света
- •8.1.2 Вычисление нормалей и углов отражения
- •8.2 Метод Гуро
- •8.3 Метод Фонга
- •8.4. Имитация микрорельефа
- •8.5 Трассировка лучей
- •8.6 Анимация
- •Глава 9. Архитектуры графических систем
- •9.1 Суперстанции
- •9.2 Компоненты растровых дисплейных систем
- •9.3 Подходы к проектированию графических систем
- •9.4 Графические системы на базе сопроцессора i82786
- •9.5 Графические системы из набора сверх больших интегральных схем (сбис)
- •9.6 Растровый графический процессор dp-8500
- •9.7 Графические системы на универсальном процессоре
- •9.8 Высокоскоростные графические системы
- •9.9 Рабочие (супер)станции с использованием универсального вычислителя
- •Глава 10. Стандартизация в компьютерной графике
- •10.2 Международная деятельность по стандартизации в машинной графике
- •Деятельность iso, iec по стандартизации в машинной графике
- •10.3 Классификация стандартов
- •10.4 Графические протоколы
- •10.4.1 Аппаратно-зависимые графические протоколы
- •Протокол tektronix
- •Протокол regis
- •Протокол hp-gl
- •10.4.2 Языки описания страниц
- •Язык PostScript
- •Язык pcl
- •10.4.3 Аппаратно-независимые графические протоколы
- •10.4.4 Проблемно-ориентированные протоколы
- •Глава 11. Форматы графических файлов
- •11.1 Векторные форматы
- •11.2 Растровые форматы
- •11.3 Методы сжатия графических данных
- •11.4 Преобразование файлов из одного формата в другой
- •Преобразование файлов из растрового формата в векторный
- •Преобразование файлов одного векторного формата в другой
- •Глава 12. Технические средства кг (оборудование кг)
- •12.1 Видеоадаптеры
- •12.2 Манипуляторы
- •Дигитайзер
- •12.3 Оборудование мультимедиа
- •12.4 Мониторы
- •Характеристики мониторов
- •Аналоговые мониторы
- •Жидкокристаллические дисплеи
- •Газоплазменные мониторы
- •Видеокарта
- •Функции графического ускорителя
- •Выбор видеокарты под монитор
- •12.5 Видеобластеры
- •12.6 Периферия
- •12.6.1 Принтеры
- •12.6.2 Имиджсеттеры
- •12.6.3 Плоттеры
- •12.7 Модемы
- •12.8 Звуковые карты
- •12.9 Сканеры
- •Планшетные сканеры
- •12.10 Секреты графических планшетов (дигитайзеров)
- •Достоинства и недостатки графических планшетов
- •12.11 Цифровые фотоаппараты и фотокамеры
- •Литература
Композиция двумерных преобразований
Понятие композиции было введено в предыдущем разделе. В данном разделе мы покажем, каким образом можно использовать композицию преобразований для объединения фундаментальных матриц R, S и Τ с целью получения желаемых общих результатов. Основное преимущество объединенных преобразований состоит в том, что к точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом.
Рассмотрим, например, поворот объекта относительно некоторой произвольной точки Pi. Поскольку нам известно, лишь как поворачивать вокруг начала координат, разобьем исходную (трудную) проблему на три более легкие задачи. Таким образом, чтобы произвести поворот относительно точкиPi, необходимо выполнить последовательно три элементарных преобразования:
1. Перенос, при котором точка Pi перемещается в начало координат.
2. Поворот.
3. Перенос, при котором точка из начала координат возвращается в первоначальное положение Ρi.
Эта последовательность показана на рис. 2.3, на котором вокруг точки Ρi(x, у) поворачивается контур домика. Первый перенос производится на(-x1, -y1),в то время как последующий — на (x1, y1) — является обратным ему. Результат существенно отличается от того, который получился бы, если бы применялся один только поворот.
Результирующее преобразование имеет вид
Эта композиция преобразований путем умножения матриц служит примером того, как применение однородных координат упрощает задачу.
Используя аналогичный подход, можно промасштабировать объект относительно произвольной точки Рi: перенестиΡi в начало координат, промасштабировать, перенести назад в точкуΡi. Результирующее преобразование в этом случае будет иметь вид
Предположим, что нам необходимо промасштабировать, повернуть и расположить в нужном месте домик, показанный на рис.2.3, где центром поворота и масштабирования является точка Ρ1. Последовательность преобразований заключается в переносе точкиΡ1 в начало координат, проведении масштабирования и поворота, а затем переносе из начала координат в новую позицию Р2, в которой домик должен оказаться (эта последовательность показана на рис. 2.3). В структуре данных, в которой содержится это преобразование, могут находиться масштабный множитель (множители), угол поворота и величины переноса или может быть записана матрица результирующего преобразования:
Если известно, что M1 иM2представляют собой элементарные перенос, масштабирование или поворот, то при каких условияхΜ1 иΜ2 коммутативны? В общем случае умножение матриц некоммутативно. Однако легко показать, что в следующих частных случаях коммутативность имеет место (в этих случаях можно не беспокоиться о порядке перемножения матриц – см. Таблицу 2.1).
Рис. 2.3 Композиция преобразований
Таблица 2.1
M1 |
М2 |
Перенос |
Перенос |
Масштабирование |
Масштабирование |
Поворот |
Поворот |
Масштабирование (при Sx = Sy) |
Поворот |
Матричное представление трехмерных преобразований
Аналогично тому, как двумерные преобразования описываются матрицами размером 3x3, трехмерные преобразования могут быть представлены в виде матриц размером 4x4. И тогда трехмерная точка (x,у, z) записывается в однородных координатах как(W∙x, W∙y, W∙z, W), гдеW≠0. ЕслиW≠1, для получения трехмерных декартовых координат точки(х, у, z) первые три однородные координаты делятся наW. Отсюда, в частности, следует, что две точкиΗ1 иH2в пространстве однородных координат описывают одну и ту же точку трехмерного пространства в том и только в том случае, когдаH1=cH2 для любой константыс, не равной нулю.
Трехмерная система координат, применяемая в этой книге, является правосторонней (рис.2.4). Примем соглашение, в соответствии с которым положительными будем считать такие повороты, при которых (если смотреть с конца положительной полуоси в направлении начала координат)поворот на 90° против часовой стрелки будет переводить одну положительную полуось в другую. На основе этого соглашения строится следующая таблица, которую можно использовать как для правых, так и для левых систем координат:
Рис. 2.4. Правосторонняя система координат
Таблица 2.2. Правосторонняя система координат
Если ось вращения |
Положительным будет направление поворота |
x у z |
от у к z от zкx от xкy |
Мы применяем здесь правостороннюю систему координат, поскольку она хорошо знакома большинству людей, хотя в трехмерной графике чаще более удобна левосторонняя система, так как ее легче представить наложенной на поверхность экрана дисплея. Это позволяет естественно интерпретировать тот факт, что точки с большими значениями zнаходятся дальше от наблюдателя. Отметим, что в левосторонней системе положительными будут повороты,выполняемые по часовой стрелке, если смотреть с конца положительной полуоси в направлении начала координат.
Трехмерный перенос является простым расширением двумерного:
Масштабирование расширяется аналогичным образом:
В самом деле,
Двумерный поворот является в то же время трехмерным поворотом вокруг оси z. В трехмерном пространстве поворот вокруг осиz описывается выражением
Это легко проверить: в результате поворота на 90° вектора [1 0 0 1], являющегося единичным вектором оси х, должен получиться единичный вектор [0 1 0 1] осиy. Вычисляя произведение
получаем предсказанный результат [0 1 0 1]. Матрица поворота вокруг оси x имеет вид
Матрица поворота вокруг оси у записывается в виде
Столбцы (и строки) верхней левой подматрицы размером 3x3 матриц Rz, RxиRyпредставляют собой взаимно ортогональные единичные векторы, интерпретация которых такая же, что и в двумерном случае.
Все эти матрицы преобразований имеют обратные матрицы. Матрица, обратная Т, получается подстановкой знака минус передDx, Dy иDz; обратнаяS— заменойSx, Sy иSz на обратные им значения, а для каждой из трех матриц поворота — выбором отрицательного угла поворота.