- •Вопросы к экзамену по компьютерной графике
- •Лекция № 1 Введение.
- •Координатная и растровая графика.
- •Лекция № 2 Цветность изображения.
- •Формирование цвета у принтера.
- •Пользователи машинной графики.
- •Лекция № 3 Стандарт gks.
- •Сегментация.
- •Система координат в машинной графике.
- •Получение нормированных координат.
- •Представление пространственных форм.
- •Полигональная сетка.
- •Параметрические кубические кривые.
- •Свойства.
- •Матричные преобразования объектов Двумерные преобразования относительно координат.
- •Двухмерное преобразование относительно произвольной точки.
- •Матричное представление трёхмерных преобразований.
- •Изображение трёхмерных объектов.
- •Построение проекций.
- •Произвольные проекции.
- •Логическая последовательность при получении проекций.
- •Произвольная параллельная проекция.
- •Опорную точку переносят в начало координат картинной плоскости. Мировые координаты
- •Произвольная центральная проекция.
- •Формализация функций отсечения.
- •Удаление скрытых линий у поверхности.
- •Повышение реалистичности изображения.
- •Закраска
- •Метод Гуро
- •Закраска Фонга
- •Передача перспективы путём изменения цвета объекта.
- •Методы сжатия информации.
- •Метод Хаффмана.
- •Алгоритм сжатия jpeg.
- •Алгоритм сжатия mpeg.
- •Алгоритм сжатия lzw.
- •Формат dxf.
- •Формат gem.
- •Растровые форматы. Формат imf.
- •Формат cgm.
- •Формат tiff.
- •Команды.
- •Формат gif.
- •Форматы хранения графики. Критерий выбора формата хранения.
- •Формат iff.
- •Форматы pcx и bmp.
- •Хранение графики в Windows.
- •Формат ico.
- •Векторные изображения.
- •Словарь терминов.
Матричные преобразования объектов Двумерные преобразования относительно координат.
-
Сдвиг.
y
Сдвиг точки по OY обозначается Dy,
P’(x’,y’) по OX обозначается Dx,




Dy x’ = x + Dx,
P(x,y) y’ = y + Dy,


Важен знак коэффициента D.
x

Dx
[x’, y’] = [x, y] + [Dx, Dy]
P’ = P + T
Теоретически для любого изображения нужно выполнить такие действия над каждой точкой изображения. Если имеем дело с векторным изображением, то для отрезка (А, В) достаточно выполнить перенос концов отрезка (А’, В’). Данное утверждение справедливо для действий масштабирования и поворота. Три действия сдвиг, масштаб и поворот позволяют получить абсолютно любое пространственное преобразование объекта.
-
Масштабирование.
y
P’(x’, y’)
P(x,y)
x
При масштабировании координаты точки умножаются на коэффициент масштабирования.
x’ = x * Sx
y’ = y * Sy
Запишем в матричной форме коэффициент масштабирования S.

Тогда
P’ = P * S
Для пиксельных изображений такое преобразование нужно выполнить над каждой точкой, для векторного над концами каждого отрезка.
Для простоты промасштабируем по обоим осям.
Пример. Пусть начало отрезка проходит через начало координат.
1
) y
Промасштабируем его по обеим осям с коэффициентом 2.
P2(1,1) Sx = Sy = 2.



P3(0.5;0.5)

x
P1(0,0)
Тогда получится
y



P2‘(2,
2)
P1‘(0,0)

2) Возьмём P3(0.5;0.5). Выполним масштаб по обеим осям с тем же коэффициентом. Зрительно отрезок как бы сместился вправо. При масштабировании это происходит всегда.
y



P2(2,2)


P3(1,1)
x
-
Поворот. Если известен угол поворота , то





y
P2‘(x’,y’) x’
= x cos
– y sin
y’
= x sin
+ y cos
P(x,y)
x
В матричной форме
![]()
Или P’ = P * R, где R – это матрица поворота. При движении против часовой стрелки угол поворота считается положительным, при движении по часовой стрелке угол поворота отрицательный. Недостатки в преобразованиях: сдвиг выполняется через сложение, а масштаб и поворот через умножение. При достаточно сложном объекте это неудобно. Чтобы уйти от сложения в сдвиге объекта, из математики позаимствовали понятие однородных координат.
P(Wx,Wy,W)

![]()
То есть, для точки в двухмерном пространстве появляется фиктивная третья координата:

Тогда сдвиг выполняется в матричной форме через умножение P’ = P * T. Таким же образом третья координата добавляется в действие масштабирования и поворота.
Для масштабирования:

Для поворота:

P’ = P * T * S *R – даёт наименьшее количество операций умножения.
Двухмерное преобразование относительно произвольной точки.

P(x,y) – над которой выполняется
преобразование
P1(x1,y1)
Результирующее положение точки P’(x’,y’). Относительно начала координат мы знаем. Проще всего так:
-
Сдвинем начало координат в точку P1(x1,y1).
-
Выполним все нужные действия над точкой P.
-
Вернёмся к исходной системе координат.
Сдвиг всей картинки на величину –x1 и –y1:
![]()
сдвиг действия возврат
![]()
Есть отдельные сокращённые матрицы для сдвига, масштаба и поворота относительно любой точки. Смысл – сократить количество операций умножения.
Например.
–
результат
– это матрица размером 3х3.
Результат умножения таких матриц имеет вид:

Пользоваться перемноженными матрицами можно, если используется не очень быстрая ЭВМ. Причём это касается в первую очередь видеосистемы (не успевает выполнить умножение за время регенерации кадров). Во всех остальных случаях пользоваться упрощёнными формулами не имеет смысла.
Очень часто применяется способ упрощения реализации поворота. От кадра к кадру угол меняется не более чем на 1 градус. В этом случае косинус близок к 1, то есть cos 1, при 1:

На каждом шаге погрешность очень маленькая, однако если количество оборотов достигнет двух и более, то погрешность может достигнуть веских величин, поэтому пройдя полный круг 360, нужно вернуться к исходному положению точки, то есть погасить погрешность.
