Аффинные преобразования пространства
При работе с трехмерными объектами, часто требуется совершать по отношению к ним различные преобразования: двигать, поворачивать, сжимать, растягивать, скашивать и т.д. При этом в большинстве случаев требуется, чтобы после применения этих преобразований сохранялись определенные свойства. Определение. Преобразование плоскости называется аффинным (от англ. affinity – родство), если
Преобразование называется взаимно однозначным, если
Свойства аффинного преобразования в трехмерном пространстве:
Любое аффинное преобразование задается матрицей 3x3 с ненулевым определителем и вектором переноса:
Посмотрим на это с точки зрения математики. R представляет собой матрицу линейного оператора над пространством трехмерных векторов. Вектор T требуется для осуществления параллельного переноса: если помножить ( 0 0 0 ) на любую матрицу 3x3, опять получим ( 0 0 0 ) – начало системы координат, относительно преобразования R, является неподвижно точкой. Требование, чтобы определитель был ненулевой, диктуется определением. По сути, если определитель матрицы R равен нулю, то всё пространство переходит в плоскость, прямую или точку. Тем самым не соблюдается взаимная однозначность. На практике удобно задавать аффинное преобразование одной матрицей. При этом используются однородные координаты, введенные в предыдущей статье. Аффинное преобразование будет задаваться следующей матрицей 4x4:
Заметим, что первые три значения последней строки равны 0. Это необходимое условие того, что преобразование будет аффинным. В общем случае произвольная матрица размера 4x4 задает проективное преобразование. Такие преобразования, как можно догадаться из названия, используются для проецирования трехмерной сцены. Подробнее об этом будет рассказано в одной из последующих статей. Рассмотрим частные случаи аффинных преобразований. Прим. Здесь и в дальнейшем будет использоваться система координат, введенная следующим образом:
Подробнее мы остановимся на этом при рассмотрении геометрического конвейера. Параллельный перенос
Матрица этого преобразования выглядит следующим образом:
В данном случае матрица R = E, единичной матрице. Преобразования, рассматриваемые ниже, затрагивают только матрицу R, поэтому будет указываться только она. Поворот (вращение)
Если на плоскости повороты делались вокруг некоторой точки, то в трехмерном пространстве повороты производятся вокруг некоторого вектора. Перед тем, как перейти к построению матрицы поворота вокруг произвольного вектора, рассмотрим частные случаи поворотов вокруг координатных осей. Прим. Поворот вокруг произвольного вектора не равно поворот вокруг произвольной направленной прямой. Поворот вокруг оси y
Заметим, что при повороте вокруг оси y ординаты точек (у-координаты) не меняются. Также стоит отметить, что координаты x и zточки преобразуются независимо от y-координаты. Это означает, что любая точка p(x, y, z) перейдет в точку p’(x’(x, z),y, z’(x, y)). Теперь осталось понять, как преобразуются координаты x и z: в плоскости Oxz это будет поворот вокруг начала координат по часовой стрелке (т.к. x z y - левая тройка), т.е. в отрицательном направлении. Матрица такого преобразования известна (см. Поворот плоскости):
В итоге: Матрица преобразования Ry(φy):
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (386)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |