9.1 Алгоритмы геометрических преобразований в компьютерной графике. OpenGl.

Общие сведения

Геометрические преобразования – это такие преобразования графических объектов, при которых изменяется направление, масштаб и положение координатной системы, используемой для определения местонахождения точек в пространстве. При этом само пространство не подвергается каким-либо изменениям, т.е. сама структура графического изображения сохраняется. Следовательно, при геометрических преобразованиях неважен тип объекта, так как в преобразованиях участвуют точки.

Основными операциями, которые относятся к геометрическим преобразованиям двумерных графических объектов, являются:
  • Перенос начала координат
  • Масштабирование
  • Поворот осей координат
Рассмотрим эти операции более подробно.

Перенос

При выполнении данной операции происходит перенос начала координат на некоторую величину.

Обозначим старую систему координат СК1, новую – СК2. При переносе новое начало координат в системе координат СК1 лежит в точке (Tx, Ty), в новой же системе СК2 старое начало координат является точкой (-Tx, -Ty). Начало координат (x,y) системы СК1 в системе СК2 станет точкой (x-Tx, y-Ty).

Стоит упомянуть, что при переносе сохраняются как направление осей координат, так и масштаб.

Матрица, необходимая для выполнения операции переноса имеет следующий вид:
Уроки OpenGL + C#: Геометрическое преобразование Рисунок 1. Геометрическое преобразование "Перенос".

Масштабирование

При выполнении операции масштабирования отрезок единичной длины на оси X становится отрезком длиной Sx на оси X’; отрезок единичной длины на оси Y становится отрезком длиной Sy на оси Y’. Получается, что в новой системе точка с координатой (1,1) преобразуется в точку (Sx, Sy), точка (x,y) будет иметь координаты (x*Sx, y*Sy).

Стоит отметить, что при масштабировании начало координат и направление осей новой и старой систем координат совпадают, меняется лишь масштаб по осям.

Матрица, необходимая для выполнения операции масштабирования имеет следующий вид:
Уроки OpenGL + C#: Геометрическое преобразование Рисунок 2. Геометрическое преобразование "Масштабирование".

Поворот

Рассмотрим частный случай поворота в пространстве XYZ – поворот относительно оси Z, проходящей перпендикулярно плоскости XY.

Предположим, что центр вращения совпадает с началом координат. Тогда при повороте системы координат XY в декартовой плоскости на некоторый произвольный угол w относительно центра вращения, координаты произвольной точки С в системе координат (x’,y’) можно выразить через координаты этой точки в изначальной системе координат (x, y):

x' = x cos w + y sin w,

y' = -x sin w + y cos w

Для выполнения операции поворота используется следующая матрица:

Уроки OpenGL + C#: Геометрическое преобразование Рисунок 3. Геометрическое преобразование "Поворот".
OpenGL поддерживает встроенную систему матриц для описания трансформации сцены или объектов, но для понятия принципов работы трансформации объектов в трехмерном пространстве мы рассмотрим данные математические перемещения, реализовав их самостоятельно.

Нет доступа к просмотру комментариев.

^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×