Трехмерные матричные преобразования
Подобно тому, как двумерные преобразования описываются матрицами размером Матрицы преобразований будем записывать в правосторонней системе координат. При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси Заметим, что на практике удобнее применять левостороннюю систему координат, так как в этом случае удобнее интерпретировать тот факт, что точки с большими значениями Запишем теперь матрицу трехмерного переноса. Аналогично двумерному случаю.
Операция масштабирования: Перейдем к операции поворота, с ней в трехмерном случае придется разбираться чуть побольше, чем в двумерном. Так как при двумерном повороте в плоскости
Матрица поворота вокруг оси
и вокруг оси Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
для операции масштабирования – на обратные значения:
для поворота – выбором отрицательного угла поворота:
Результатом нескольких последовательных поворотов будет матрица
Здесь верхняя матрица размером После перемножения любого числа матриц вида
Здесь верхняя часть размером
Вопросы эффективности вычислений Рассмотрим проблему ускорения вычислений в одной из самых трудоемких операций компьютерной графики – операции поворота точки относительно начала координат. Как было показано ранее, для ее выполнения необходимо произвести 4 операции умножения, 2 операции сложения, а также вычислить значения синуса и косинуса угла поворота. Напомним вид формул поворота: Одним из наиболее часто встречающихся способов ускорения операции поворота является отказ от вычисления синуса и косинуса угла во время выполнения программы, и использование их заранее подсчитанных значений, которые занесены в специальную таблицу. Например, в этой таблице могут храниться значения синусов и косинусов углов поворота с шагом в 1 градус. Тогда целое количество градусов угла поворота может служить в качестве индекса при извлечении соответствующих значений синусов и косинусов из таблицы. Такой прием называется табличным поворотом. Рис. 6. Вывод формулы О. Бьюнемана.
Дополнительным способом ускорения операции поворота является уменьшение количества операций умножения. Рассмотрим вывод формулы О. Бьюнемана с использованием тангенса половинного угла, в которой поворот точки вокруг начала координат производится за 3 операции умножения и 3 операции сложения. Так как на многих микропроцессорах операции умножения выполняются дольше чем операции сложения, то экономия времени достигается за счет уменьшения операций умножения. Вывод формулы будем получать из геометрических построений, как показано на рис.6.
Будем искать выражение координат
Последние три равенства будем называть формулой Бьюнемана.
|