- •Растровое представление графической информации
- •Векторное представление графической информации
- •Сжатие информации
- •Растровые форматы графических файлов
- •Векторные форматы графических файлов
- •Структура пакета программ компьютерной графики
- •Структура и генерация изображений в компьютерной графике
- •Представление прямой линии в компьютерной графике
- •Алгоритм Брезенхама вычерчивания отрезка прямой линии
- •Алгоритм Брезенхама вычерчивания окружности
- •Устранение лестничного эффекта в компьютерной графике
- •Заполнение области в компьютерной графике
- •Понятие двумерных геометрических преобразований
- •2D геометрические преобразования. Поворот
- •2D геометрические преобразования. Перенос
- •2D геометрические преобразования. Масштабирование
- •2D геометрические преобразования. Матричные уравнения
- •2D геометрические преобразования. Общий алгоритм
- •Преобразование области. Задача кадрирования
- •Задача отсечения в компьютерной графике
- •Сплайны в компьютерной графике
- •Доказательство гладкости кубических сплайнов
- •Кривые Безье в компьютерной графике
- •Фракталы в компьютерной графике
- •Обработка растровых изображений: изменение резкости, тиснение
- •Обработка растровых изображений: акварелизация
- •Уровни подобия моделей в компьютерной графике
- •Этапы построения изображений в 3d
- •Методы описания объектов в 3d
- •Геометрические преобразования в 3d
- •Поворот объектов вокруг оси в 3d
- •Системы координат в компьютерной графике
- •Преобразование координат в компьютерной графике
- •Ортогональное проецирование в компьютерной графике
- •Алгоритм общего ортогонального проецирования
- •Построение центральной проекции в компьютерной графике
- •Афинные преобразования
Понятие двумерных геометрических преобразований
Геометрические преобразования – такие преобразования графического объекта, которые не нарушают структуру изображения, то есть если некоторая точка a(x,y) принадлежит линии А, то преобразованная точка a’(x’,y’) принадлежит преобразованной линии А’; А принадлежит поверхности A и А’ принадлежит поверхности A’ после выполнения преобразования. Изображение может двигаться, наклоняться, расширяться, но структура изображения не должна теряться. Поэтому тип примитива не влияет на выполнение геометрических преобразований.
Существует всего три типа двухмерных геометрических преобразований:1. Поворот.2. Перенос.3. Масштабирование.
2D геометрические преобразования. Поворот
Из геометрических соображений получаем (рис. 18):
x’ = x·cos a + y·sin a;
y’ = - x·sin a + y·cos a .
Если выполним поворот изображения, заданного в системе координат XOY, получим координаты точек этого изображения в системеX’OY’. Повернем затем систему X’OY’ назад в первоначальное положение.
При замене a на –a получим поворот в другую сторону.
Кроме того, этот поворот в плоскости XOY можно представить как частный случай поворота в пространстве XYZ, а именно как плоский поворот относительно оси Z на угол a в трехмерном пространстве XYZ:
x’= x·Сos a + y·Sin a + z·0
y’= - x·Sin a + y·cos a + z·0
z’= x·0 + y·0 + z·1.
То же в матричном виде:
[x’ y’ z’]
= [x y z]
Аналогично получается соотношение для новых координат точки, полученных в результате ее поворота относительно оси Y на угол b :
x’=x·cos b + y·0 - z·sin b
y’=x·0 + y·1 + z·0
z’= x·sin b + y·0 + z·cos b.
Поворот вокруг оси Х на угол g :
x’= x·1 + y·0 + z·0
y’= x·0 + y·cos g + z·sin g
z’= x·0 – y·sin g + z·cos g.
Соответствующие матрицы поворотов имеют вид (рис. 19):
2D геометрические преобразования. Перенос
Перенос точки производится добавлением к каждой координате точки положительной или отрицательной константы. Если обозначить параметры переноса через Тх (перенос в направлении оси х), Ту (перенос в направлении оси у), Tz (перенос в направлении оси z), получим координаты перенесенной точки Р(x,y,z):
P’(x’,y’,z’) = Р(x,y,z) + T(Тх,Ту,Tz) или (x’,y’,z’) = (x,y,z) + (Тх,Ту,Tz).
Можно сюда добавить операцию поворота:
P’(x’,y’,z’) = Р(x,y,z) · R(x,y,z)+ T(Тх,Ту,Tz).
2D геометрические преобразования. Масштабирование
Операция масштабирования заключается в том, что каждая координата точки умножается на некоторую величину. Преобразование выполняется с помощью матрицы масштабирования S: P’= P·S, или
где Sx ,Sy ,Sz – коэффициенты масштабирования, являющиеся масштабными множителями соответственно в х-, у-, z- направлениях. Если масштабные множители меньше единицы, то преобразуемый объект сжимается, если они больше единицы, то объект растягивается. Если Sx= Sy = Sz = C, объект сжимается или растягивается одинаково по всем направлениям, что соответствует операции общего масштабирования. При общем масштабировании (равномерно по всем осям без изменения формы объекта) матрицу S можно заменить скаляром C:
(x’,y’,z’) = С· (x,y,z), где С=const.
Можно объединить все три преобразования в общую формулу:
P’ = S · R · P + T,
где P – исходная точка; P’ – преобразованная точка; S, R, T – соответствующие матрицы.
