КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Трехмерные матричные преобразования
Подобно тому, как двумерные преобразования описываются матрицами размером 3´3, трехмерные преобразования могут быть представлены матрицами размером 4´4. Тогда трехмерная точка (x, y, z) записывается в однородных координатах как (Wx,Wy,Wz,W), где W ¹ 0. Для получения декартовых координат надо первые три однородные координаты разделить на W. Два однородных вектора описывают одну декартову точку в трехмерном пространстве, если H1 = c H2, где c = const ¹ 0 и H, H2 - векторы, записанные в однородных координатах. Матрицы преобразований будем записывать в правосторонней системе координат (см. рис. 10).
Рис. 10. Правосторонняя система координат При этом положительный поворот определяется следующим образом. Если смотреть из положительной части оси вращения (например, оси Заметим, что на практике во многих приложениях компьютерной графики удобнее применять левостороннюю экранную систему координат (см. рис. 11), в которой ось x направлена вправо, ось y – вверх, а ось z вглубь экрана. В этом случае удобнее интерпретировать тот факт, что точки с большими значениями
Рис. 11. Левосторонняя система координат Запишем теперь матрицу трехмерного переноса, по аналогии с двумерным случаем:
при этом
Операция масштабирования:
Перейдем к операции поворота. C ней в трехмерном случае придется разбираться чуть больше, чем в двумерном. Так как при двумерном повороте в плоскости xy координаты z остаются неизменными, то поворот вокруг оси z записывается так:
Матрицы поворота вокруг оси x и вокруг оси y имеют вид:
: Обратите внимание на смену положения синуса угла с отрицательным знаком в матрице поворота вокруг оси y. Правильность этих матриц легко проверить поворотом одного из ортов на 900, при этом он должен перейти в следующий по порядку орт на соответствующей координатной оси. Обратные преобразования будут выражаться матрицами, обратными к показанным выше. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:
для операции масштабирования – на обратные значения:
для поворота – выбором отрицательного угла поворота:
Результатом нескольких последовательных поворотов будет матрица вида
Здесь верхняя матрица размером 3´3 называется ортогональной. Столбцы ортогональной матрицы – это единичные вектора, в которые преобразуются орты координатных осей в результате поворотов. Важным ее свойством является то, что обратная к ней матрица является транспонированной: После перемножения любого числа матриц вида T,S и R результирующая матрица всегда будет иметь вид:
Здесь верхняя часть размером 3´3 определяет суммарный поворот и масштабирование, а три коэффициента последней строки – суммарный перенос. Преобразование одной точки выполняется с помощью следующих действий
Таким образом, для преобразования одной трехмерной точки потребуется уже 9 умножений и 9 сложений.
Дата добавления: 2014-01-07; Просмотров: 362; Нарушение авторских прав?; Мы поможем в написании вашей работы! |