Общие сведения
Геометрические преобразования – это такие преобразования графических объектов, при которых изменяется направление, масштаб и положение координатной системы, используемой для определения местонахождения точек в пространстве. При этом само пространство не подвергается каким-либо изменениям, т.е. сама структура графического изображения сохраняется. Следовательно, при геометрических преобразованиях неважен тип объекта, так как в преобразованиях участвуют точки.Основными операциями, которые относятся к геометрическим преобразованиям двумерных графических объектов, являются:
- Перенос начала координат
- Масштабирование
- Поворот осей координат
Перенос
При выполнении данной операции происходит перенос начала координат на некоторую величину.Обозначим старую систему координат СК1, новую – СК2. При переносе новое начало координат в системе координат СК1 лежит в точке (Tx, Ty), в новой же системе СК2 старое начало координат является точкой (-Tx, -Ty). Начало координат (x,y) системы СК1 в системе СК2 станет точкой (x-Tx, y-Ty).
Стоит упомянуть, что при переносе сохраняются как направление осей координат, так и масштаб.
Матрица, необходимая для выполнения операции переноса имеет следующий вид:
Рисунок 1. Геометрическое преобразование "Перенос".
Масштабирование
При выполнении операции масштабирования отрезок единичной длины на оси X становится отрезком длиной Sx на оси X’; отрезок единичной длины на оси Y становится отрезком длиной Sy на оси Y’. Получается, что в новой системе точка с координатой (1,1) преобразуется в точку (Sx, Sy), точка (x,y) будет иметь координаты (x*Sx, y*Sy).Стоит отметить, что при масштабировании начало координат и направление осей новой и старой систем координат совпадают, меняется лишь масштаб по осям.
Матрица, необходимая для выполнения операции масштабирования имеет следующий вид:
Рисунок 2. Геометрическое преобразование "Масштабирование".
Поворот
Рассмотрим частный случай поворота в пространстве XYZ – поворот относительно оси Z, проходящей перпендикулярно плоскости XY.Предположим, что центр вращения совпадает с началом координат. Тогда при повороте системы координат XY в декартовой плоскости на некоторый произвольный угол w относительно центра вращения, координаты произвольной точки С в системе координат (x’,y’) можно выразить через координаты этой точки в изначальной системе координат (x, y):
x' = x cos w + y sin w,
y' = -x sin w + y cos w
Для выполнения операции поворота используется следующая матрица:
Рисунок 3. Геометрическое преобразование "Поворот".
OpenGL поддерживает встроенную систему матриц для описания трансформации сцены или объектов, но для понятия принципов работы трансформации объектов в трехмерном пространстве мы рассмотрим данные математические перемещения, реализовав их самостоятельно.