Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КГ Лекции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.3 Mб
Скачать

Преобразования поворота в пространстве

Повороты в пространстве производятся вокруг осей. Рассмотрим повороты вокруг главных координатных осей. Положительными считаются повороты против часовой стрелки, если смотреть с конца положительной полуоси. Изученный нами ранее поворот относительно начала координат на плоскости XOY можно рассматривать как поворот в пространстве относительно оси Z. Для получения матриц поворота относительно других координатных осей можно использовать ту же схему рассуждений, что приводилась нами для определения поворота на плоскости XOY.

Повороты вокруг произвольных осей строятся за счет композиции поворотов вокруг главных координатных осей. Схема такого подхода нами уже разбиралась. Применим ее на практике еще раз.

Сначала уточним исходные данные. Для задания произвольного поворота в пространстве недостаточно определить только ось. При этом невозможно определить направление поворота. Необходимо задать направляющий вектор и точку его привязки. Так же необходимо задать величину угла поворота .

Для выполнения заданного преобразования необходимо:

  • Совместить точку привязки с началом координат за счет преобразования переноса Т, задаваемого вектором, соединяющим начало координат с этой точкой.

  • Выполнить поворот вокруг оси X на угол , переводящий направляющий вектор в плоскость XOZ .

  • Выполнить поворот вокруг оси Y на угол , совмещающий направляющий вектор с положительной полуосью Z.

  • Выполнить поворот вокруг оси Z на требуемый угол .

  • Выполнить обратные преобразования, приводящие сцену в исходное состояние.

Коммутативность преобразований Преобразования как изменение координатных систем

На первой лекции мы рассматривали геометрический конвейер и говорили о различных координатных системах и переходах между ними. В данной лекции мы говорим о преобразованиях геометрических объектов. Как же устранить данное противоречие?

Рассмотрим любое преобразование объекта, например перенос точки. Перенесем точку в соответствии с заданным вектором. Точка Р с координатами (2 3) преобразуется в точку Р’ с координатами (4 5).

Данную ситуацию можно трактовать иначе. Точка осталась неизменной, а изменению подверглась координатная система. Таким образом, мы с помощью преобразования сдвига преобразовали координатную систему С1 в координатную систему С2.

Такой взгляд можно рассматривать как метафору, потому что для реализации перевода сцены из одной координатной системы в другую необходимо подвергнуть преобразованию каждый объект сцены. Мы используем такую нотацию, так как в терминах координатных систем и их преобразований легче объяснять устройство и работу графических систем, а так же писать программы. В этом мы убедимся позже при написании программ с использованием OpenGL.

Рассмотрим еще один пример. В исходной координатной системе С1 с помощью преобразования масштабирования ( Sx=0.5 Sy=0.5 ) определим координатную систему C2=C1*S21. На ее основе с помощью преобразований переноса (Dx=4 Dy=2) и поворота (=45º) определим координатную систему

C3=C2*T23*R23. С учетом композиции запишем С3=С2*M23 Очевидно, что отношения между координатными системами С3 и С1 описываются формулой C3= C1*S21*T23*R23 =С1*М31.

Таким образом, мы определили три координатные системы и установили отношения между ними. Нарисуем в координатных системах С2 и С3 два одинаковых домика и перейдем в координатную систему С1. Изображения подверглись масштабированию, повороту и смещению согласно установленных нами отношений.

Этот простой пример демонстрирует важный этап визуализации – сборку сцены. В процессе сборки мы определяем фрагменты сцены в координатных системах, удобных для построения. Обычно такие координатные системы в графическом конвейере носят название модельных координат. В некоторых источниках, дающих более строгое математическое обоснование, используют термин фрейм.

После определения всех необходимых фрагментов производят преобразование всех модельных координатных систем в единую систему, носящую название мировых координат.

Лекция 3. Двумерный конвейер.