Оглавление Дополнительное чтение Учебник «Компьютерная графика» Лекция 01. Преобразования в двухмерном пространстве Лекция 03. Аффинное проецирование

Часть I / Лекция 02. Преобразования в трехмерном пространстве

На прошлой лекции мы изучили операции, которые можно выполнять с точкой на плоскости. Такие же операции имеются и в трехмерном пространстве. Отличие здесь небольшое: точка задается не двумя, а тремя координатими, и при работе в однородных координатах матрицы преобразований/операций будут состоять не из трех, а из четырех столбцов.

Операция смещения

Операция масштабирования

Общее полное масштабирование

Матрицы поворота вокруг осей x, y, z на угол a

Rx

Ry

Rz

рис. 2.1

Поворот тела вокруг точки (m, n, k) на угол a

Разобъем данную операцию на базовые (простейшие), а именно: 1) перенос тела на вектор A(-m, -n, -k) для совмещения точки (m, n, k) с началом координат; 2) поворот тела на угол a; 3) перенос тела на вектор A'(m, n, k) для возвращения его в исходное положение. Представим тело набором точек (вершин тела) и выполним операции 1) - 3) с каждой из них; в матричной форме это представляется следующим образом (R(a) — матрица поворота вокруг оси x, y или z):

Зеркалирование

Замечание: ниже представлены всего лишь три матрицы зеркалирования, на самом деле их больше. Предлагаем читателю самостоятельно построить недостающие матрицы.

Зеркалирование относительно оси z:

Зеркалирование относительно плоскости x = 0:

Зеркалирование относительно начала координат:

Вращение тела на угол q вокруг произвольной оси, проходящей через точку (0, 0, 0)

рис. 2.2

Здесь a — угол наклона относительно оси x, b — угол наклона относительно оси y, g — угол наклона относительно оси z. Эта операция не базовая, ее можно получить комбинацией простейших. Попробуйте сами вычислить матрицу, реализующую эту операцию. Ответ смотрите здесь.

Скачать Скачать Stratum-проект «Преобразования в трехмерном пространстве» [3dtrans.zip, 15 Кб]
Лекция 01. Преобразования в дв... Лекция 03. Аффинное проецирова...