Матрица поворота в двумерном пространстве. Поворот системы координат на угол, матрица вращения Определение матрицы поворота через базис

Матричное описание вращения твёрдого тела упрощает многие операции; однако, для того, чтобы полностью описать ориентацию вращающегося твёрдого тела, необходимо использовать все девять элементов матрицы поворота. Непосредственно эти элементы не составляют полной системы обобщённых координат, с помощью которых можно описать ориентацию вращающегося твёрдого тела относительно абсолютной системы координат.

В качестве обобщённых координат можно использовать углы Эйлера j , q и y .

Таблица 3.1. Три системы углов Эйлера

Последова-тельность поворотов

На j вокруг оси OZ

На j вокруг оси OZ

На y вокруг оси OX

На q вокруг оси OU

На q вокруг оси OV

На q вокруг оси OY

На y вокруг оси OW

На y вокруг оси OW

На j вокруг оси OZ

Первая из систем углов Эйлера обычно используется при описании движения гироскопов и соответствует следующей последовательности поворотов (рис. 3.2):

Рисунок 3.2. Первая система углов Эйлера

R j , q , y = R z , j ×R u , q ×R w , y =
=

=
. (3-2)

R j , q , y , может быть также получен в результате выполнения последовательности следующих поворотов вокруг осей неподвижной системы координат: сначала на угол y вокруг оси OZ , затем на угол q вокруг оси OX , затем на угол j вокруг оси OZ .

На рисунке 3.3 показана вторая система углов Эйлера, определяемая следующей последовательностью поворотов:

    Поворот на угол j вокруг оси OZ (R z , j).

    Поворот на угол q вокруг оси OV (R v , q).

    Поворот на угол y вокруг повёрнутой оси OW (R w , y).

Результирующая матрица поворота имеет следующий вид:

R j , q , y = R z , j ×R v , q ×R w , y =
=

=
. (3-3)

Поворот, описываемый матрицей R j , q , y для этой системы углов Эйлера, может быть получен также в результате выполнения последовательных поворотов: на угол y вокруг оси OZ , на угол q вокруг оси OY , на угол j вокруг оси OZ .

Рисунок 3.3. Вторая система углов Эйлера

Ещё одну систему углов Эйлера составляют так называемые углы крена , тангажа и рыскания . Эти углы обычно применяются в авиации для описания движения самолётов.

Они соответствуют следующей последовательности поворотов:

    Поворот на угол y вокруг оси OX (R x , y ) – рыскание.

    Поворот на угол q вокруг оси OY (R y , q ) – тангаж.

    Поворот на угол j вокруг оси OZ (R z , j ) – крен.

Результирующая матрица поворота имеет вид:

R j , q , y = R z , j ×R y , q ×R x , y =
=

=
. (3-4)

Поворот, описываемый матрицей R j , q , y в переменных «крен, тангаж, рыскание» может быть также получен в результате выполнения следующей последовательности поворотов вокруг осей абсолютной и подвижной систем координат: на угол j вокруг оси OZ , затем на угол q вокруг повёрнутой оси OV , на угол y вокруг повёрнутой оси OU (продольная ось аппарата – Z ) (рис. 3.4).

Рисунок 3.4. Крен, тангаж, рысканье (третья система углов Эйлера)



Часть 8 - интегрирование угловых скоростей, матрицы поворота



Часть 11 - интегрирование угловых скоростей, методы высших порядков (в разработке)






Интегрирование угловых скоростей с помощью матриц поворота

Продолжаем нашу предвыборную гонку - какой интегратор угловых скоростей займёт своё законное место у руля (в буквальном смысле) нашего изделия?

Мы уже накопали компромата на углы Эйлера-Крылова - это конечно уважаемые и достойные фамилии, но очень уж старенькие - задрать голову в зенит не могут, сразу начинает голова кружиться, да и подвешенные вниз головой резко теряют работоспособность. Да и вообще, уголовники (системы, основанные на углах) нам не нужны!

Сегодня мы рассмотрим матрицы поворота - 9 направляющих косинусов не могут ошибаться, не правда ли?


Кинематическое уравнение для связанных осей (когда угловая скорость проецируется на оси изделия) принимает вид:

Здесь A – матрица ориентации.
Для шага Δt мы можем записать приближенный метод интегрирования:

Этот метод – сугубо линейный, в нём применяются только сложения и умножения, особые точки отсутствуют как класс.
Один недостаток, который мы можем заметить «сходу» - это громоздкость: мы используем 9 чисел для представления матриц, а каждый шаг интегрирования по простейшему методу («первого порядка») требует 18 умножений и 18 сложений (без специализированного метода, «знающего» о единицах по главной диагонали – и вовсе 27 умножений). Если выписать по компонентам, мы получим (с верхним индексом 1 – новые значения, с верхним индексом 0 – старые):

Матричная запись позволяет скрыть эту внутреннюю сложность за красивыми выкладками, поэтому полезно иногда выписать вычисления «в лоб», чтобы помнить, с чем мы имеем дело.
Тем не менее, даже у самых старых бортовых вычислителей не возникло бы проблем, связанных с недостаточной производительностью – ну что такое 36 операций для компьютера!?

Нет, настоящая ахиллесова пята матриц поворота состоит в том, что по прошествии времени они перестают быть матрицами поворота, а вернуть их на путь истинный не так-то просто…
Пусть начальная матрица ориентации – единичная, то есть оси инерциальной и связанной систем координат совпадают:

После 72 шагов придём к матрице ориентации, равной:

тогда как должны были прийти к единичной матрице (поворот на 360 градусов!).
Можем записать эту матрицу, как произведение двух:

Вторая из них – матрица поворота по оси Z на угол 0,9° - такова накопленная ошибка интегрирования, вызванная слишком крупным шагом. В относительном выражении ошибка не так велика: 0,9/360 = 0,25%, что не так уж плохо, учитывая, сколь крупный шаг мы взяли.
А вот первая матрица – масштабирование по осям X, Y. Вектор с нулевой компонентой Z просто увеличит свою длину – зачастую это не так уж страшно – по крайней мере, это не изменит направление вектора. Точно так же, вектор (0;0;1) T останется без изменений – всё верно.
Самое интересное будет происходить с промежуточными векторами.
К примеру, вектор

превратится в

он не только увеличивается в размерах, но и меняет направление из-за масштабирования! Раньше он «смотрел» под углом 45° к плоскости X-Y, а теперь – под углом 37° - ошибка составляет уже не 0,9°, а целых 8°!

В данном конкретном случае мы легко смогли факторизовать матрицу, вычленив из неё отдельно поворот и отдельно масштабирование. Когда мы можем это сделать – понятно, как исправить ситуацию – нужно оставить только матрицу поворота, а масштабирование убрать!
Но представим теперь, что после поворотов вокруг оси Z, мы осуществили ещё и поворот вокруг приборной оси X на 30 градусов:

Как из этого нагромождения чисел наиболее оптимально вычленить отдельно повороты, избавившись от других преобразований пространства – вопрос по-прежнему открытый…
Напомним, что столбцы матрицы ориентации – это координаты базисных векторов в инерциальной системе отсчета. Эти векторы должны иметь единичную длину и быть взаимно-перпендикулярными, то есть мы можем записать следующие «уравнения связи» (в данном случае двойка наверху – это возведение в степень):

Действительно: при 9 коэффициентах матрицы, мы должны иметь ровно 3 степени свободы, поэтому нам и нужны дополнительные 6 уравнений. Проверим, что происходит у нас:
Длина 1-го базисного вектора: 1,314
Длина 2-го базисного вектора: 1,243
Длина 3-го базисного вектора: 1,087
Угол между 1 и 2: 90°
Угол между 2 и 3: 103,47°
Угол между 1 и 3: 90°

Ортонормированный базис перестал быть таковым! Мы понимаем это, но как именно скорректировать 9 значений, чтобы он снова стал ортонормированным?

Можно применить старый добрый метод построения ортонормированного базиса. Исходные базисные векторы обозначим e 1 , e 2 , e 3 :

Преобразованный базис назовём n 1 , n 2 , n 3 .
Первый вектор мы нормируем:

Из второго вектора мы вычитаем его проекцию на первый, после чего тоже нормируем:

Наконец, из третьего вектора вычитаем его проекцию на первый и второй, после чего нормируем:

В этих формулах есть определённое лукавство: кажется, что мы задействовали все 9 исходных коэффициентов, чтобы получить новые 9, теперь уже ортонормированные. На самом деле, от e 3 вообще ничего не зависит! Сначала мы вычитаем из него всё лишнее, так, чтобы он шел по прямой, взаимно перпендикулярной n 1 , n 2 , а затем нормируем его длину – да от этого вектора живого места не остаётся! Мы с тем же успехом можем записать:

и получить абсолютно тот же самый результат! То есть, в действительности данный метод берёт первые 6 коэффициентов и напрочь выкидывает последние 3. Да и первые 6 оказываются неравнозначны: если первому столбцу мы доверяем «безоговорочно», то второму – только до тех пор, пока он не противоречит первому.

Попробуем процедуру нормировки на нашей матрице B:

При этом, как и следовало ожидать, n 3 получился одинаковым до последнего представимого знака после запятой, независимо от способа вычисления – через e 3 или через векторное произведение.

Сейчас нам повезло – мы идеально отнормировали матрицу, так что она выражает ровно то, что и должна – поворот на 0,9° вокруг оси Z и поворот на 30° вокруг оси X.
Но попробуем теперь зайти с обратной стороны – не e 1 , e 2 , e 3 , а e 3 , e 2 , e 1 . Получится вот что:

Вместо поворота на 30° по оси X, мы в этот раз получили поворот на 37°, реализовав фактически наихудший случай!
Правильным подходом было бы решение оптимизационной задачи: каждый коэффициент матрицы является суммой полезного сигнала и шума. Найти новые коэффициенты, выраженные через старые, таким образом, чтобы среднеквадратичная ошибка стремилась к минимуму. Но даже тогда мы не гарантируем наилучшей работы – кто сказал, что, используя приближенные матрицы конечного поворота, мы вносим именно случайную ошибку!?
Уточним, в чём наша проблема. Нам не хотелось выписывать точную матрицу конечного поворота, поскольку она выглядит примерно так:

(меняя порядок поворотов, будем получать разные матрицы W, но все они будут являться строго матрицами поворота)
Мы «из жадности» её упростили:

И обнаружили, что выкинутые нами слагаемые второго порядка малости приводят к изменению вида матрицы. В нашем примере поворота вокруг оси Z, получаем

Разложив в ряд Тейлора до 3-го порядка малости, имеем:

И снова мы наблюдаем похожий эффект: ошибка интегрирования на этот раз чрезвычайно мала, составляя менее угловой секунды, тогда как наиболее заметное искажение снова проявилось в масштабе. Кажется, что ошибка весьма мала – менее одной тысячной – но этого достаточно, чтобы вектор, направленный под углом 45° к плоскости XY, «прижался бы» к ней дополнительно на 1 угловую минуту.

Так что даже использование малого шага интегрирования и применение методов высокого порядка не решает проблему накопления «мусора» в матрице. И чем больше проходит времени, тем больше в матрице будет мусора, который мы сможем отбросить только вместе с полезными данными.

Всё сказанное не означает, что матрицы поворота абсолютно не годятся для интегрирования угловых скоростей. Их можно применить, если соблюдать определённую осторожность - обязательно предусмотреть процедуру "ортонормирования", но по возможности до неё не доводить - повсюду перейти на удвоенную или расширенную точность, уменьшить шаг интегрирования, использовать численные методы высокого порядка.

Но как мы узнаем в следующей главе, кватернионы свободны от большинства недостатков матриц поворота и выходят в этой битве победителями.

Продолжение следует...

В двумерном пространстве поворот можно описать одним углом θ со следующей матрицей линейного преобразования в декартовой системе координат:

Положительным углам при этом соответствует вращение вектора против часовой стрелки в обычной, правосторонней системе координат, и по часовой в левосторонней системе координат.

Сам поворот происходит путём умножения матрицы поворота на вектор

Матрица поворота в трёхмерном пространстве

Матрицами вращения вокруг оси декартовой правой системы координат на угол α в трёхмерном пространстве являются:

    Вращение вокруг оси x:

,

    Вращение вокруг оси y:

,

    Вращение вокруг оси z:

,

В трёхмерном пространстве для описания поворота можно использовать

Матрицы поворота вектора в декартовой системе координат, соответствующие первым двум способам задания поворота:

Однако, поскольку умножение матриц не коммутативно, то есть: , следовательно, положение системы координат после поворота вокруг трех осей будет зависеть от последовательности поворотов, то существует 6 различных видов матрицы поворота:

    1) Поворот около осей: X -> Y -> Z

    2) Соответственно: X -> Z -> Y

    3) Y -> X -> Z

    4) Y -> Z -> X

    5) Z -> X -> Y

    6) Z -> Y -> X

Получить же нужную матрицу можно путем последовательного перемножения матриц поворота около одной оси (приведенных выше) в соответствии с желаемым порядком.

Билет 33. Свойства обратной матрицы

33) Обра́тная ма́трица - такая матрица A −1 , при умножении на которую исходная матрица A даёт в результате единичную матрицу E :

1), где обозначает определитель.

2)для любых двух обратимых матриц A и B .

3)где * T обозначает транспонированную матрицу.

4)для любого коэффициента .

5)Если необходимо решить систему линейных уравнений Ax = b , (b - ненулевой вектор) где x - искомый вектор, и если A − 1 существует, то x = A − 1 b . В противном случае либо размерность пространства решений больше нуля, либо их нет вовсе.

Матричный метод решения (метод решения через обратную матрицу) систем линейных алгебраических уравнений с ненулевым определителем состоит в следующем.

Пусть дана система линейных уравнений с n неизвестными (над произвольным полем):

Тогда её можно переписать в матричной форме:

AX = B , где A - основная матрица системы, B и X - столбцы свободных членов и решений системы соответственно:

Умножим это матричное уравнение слева на A − 1 - матрицу, обратную к матрице A :

Так как A − 1 A = E , получаем X = A − 1 B . Правая часть этого уравнения даст столбец решений исходной системы. Условием применимости данного метода (как и вообще существования решения неоднородной системы линейных уравнений с числом уравнений, равным числу неизвестных) является невырожденность матрицы A. Необходимым и достаточным условием этого является неравенство нулю определителя матрицы A:

Для однородной системы линейных уравнений, то есть когда вектор B = 0, действительно обратное правило: система AX = 0 имеет нетривиальное (то есть ненулевое) решение только если det A = 0. Такая связь между решениями однородных и неоднородных систем линейных уравнений носит название альтернативы Фредгольма.

Билет 34. Теорема о связи решений однородной и неоднородной СЛАУ.

Неоднородная система: Ax=B, B≠0.

Однородная система: Ах=0.

Теорема: 1. Если вычесть два решения неоднородной системы, то получится решение однородной системы.

2. Если к решению неоднородной системы прибавить решение однородной системы, то получится решение неоднородной системы.

Доказательство:

1) с 1 ,с 2 – два решения неоднородной системы.

Ас 1 =В; Ас 2 =В. Из первой системы вычтем вторую систему: Ас 1 -Ас 2 =0; А(с 1 -с 2)=0; с 1 -с 2 – решение однородной системы.

2) Ас н =В – решение неоднородной системы.

Ас о =0 - решение однородной системы.

Ас н + Ас о =В. А(с н + с о)=В. с н + с о – решение неоднородной системы.

Билет 35. Несовместность СЛАУ. Метод Гауса.

Если система решений не имеет, то она называется несовместной.

Алгоритм решения СЛАУ методом Гаусса подразделяется на два этапа:

1)На первом этапе осуществляется так называемый прямой ход, когда путём элементарных преобразований над строками систему приводят к ступенчатой или треугольной форме, либо устанавливают, что система несовместна. А именно, среди элементов первого столбца матрицы выбирают ненулевой, перемещают его на крайнее верхнее положение перестановкой строк и вычитают получившуюся после перестановки первую строку из остальных строк, домножив её на величину, равную отношению первого элемента каждой из этих строк к первому элементу первой строки, обнуляя тем самым столбец под ним. После того, как указанные преобразования были совершены, первую строку и первый столбец мысленно вычёркивают и продолжают пока не останется матрица нулевого размера. Если на какой-то из итераций среди элементов первого столбца не нашёлся ненулевой, то переходят к следующему столбцу и проделывают аналогичную операцию.

2)На втором этапе осуществляется так называемый обратный ход, суть которого заключается в том, чтобы выразить все получившиеся базисные переменные через небазисные и построить фундаментальную систему решений, либо, если все переменные являются базисными, то выразить в численном виде единственное решение системы линейных уравнений. Эта процедура начинается с последнего уравнения, из которого выражают соответствующую базисную переменную (а она там всего одна) и подставляют в предыдущие уравнения, и так далее, поднимаясь по «ступенькам» наверх. Каждой строчке соответствует ровно одна базисная переменная, поэтому на каждом шаге, кроме последнего (самого верхнего), ситуация в точности повторяет случай последней строки.

Уравнение y=kx+b называется уравнением прямой с угловым коэффициентом; k - угловой коэффициент, b - величина отрезка, который отсекает прямая на оси Оу, считая от начала координат. Тангенс угла наклона прямой к оси Ох называется угловым коэффициентом прямой. k=tg(альфа).

Угол между двумя прямыми:

Первая прямая: L 1 , n 1 (p 1 ,q 1 ,r 1).

Вторая прямая: L 0 , n 0 (p,q,r).

L 1 // L 0 ; n 1 // n 0 ; p 1 /р=q 1 /q= r 1 /r – условие параллельности 2 прямых.

L 1 ﬩ L 0 ; n 1 ﬩n 0 ; (n 1 ,n)=0; pp 1 +qq 1 +rr 1 =0 – условие параллельности 2 прямых.

Cosφ=(n 1 ,n)/|n 1 |*|n 0 |

В плоскости Лобачевского две прямые могут либо пересекаться, либо могут быть параллельными в некотором направлении, либо расходящимися. Поэтому в плоскости Лобачевского существует три вида пучков прямых:

1) пучок прямых, пересекающихся в одной точке, называемой центром пучка; такой пучок называется центральным или эллиптическим;

2) пучок прямых, параллельных в заданном направлении некоторой прямой, называемой осью пучка; такой пучок называется параболическим;

3) пучок расходящихся прямых, перпендикулярных к некоторой прямой, называемой базой пучка; такой пучок называется гиперболическим.

Взаимное расположение прямых на плоскости.

Прямые линии в пространстве могут быть параллельными, пересекающимися и скрещивающимися. Рассмотрим подробнее каждый случай.

1. Параллельные прямые линии.

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

Проекции параллельных прямых на любую плоскость (не перпендикулярную данным прямым) - параллельны. Если AB//CD то A 1 B 1 //C 1 D 1 ; A 2 B 2 //C 2 D 2 ; A 3 B 3 //C 3 D 3 (рис.33). В общем случае справедливо и обратное утверждение.

Матрицей поворота (или матрицей направляющих косинусов) называется ортогональная матрица, которая используется для выполнения собственного ортогонального преобразования в евклидовом пространстве. При умножении любого вектора на матрицу поворота длина вектора сохраняется. Определитель матрицы поворота равен единице.
Обычно считают, что, в отличие от матрицы перехода при повороте системы координат (базиса), при умножении на матрицу поворота вектора-столбца координаты вектора преобразуются в соответствии с поворотом самого вектора (а не поворотом координатных осей; то есть при этом координаты повернутого вектора получаются в той же, неподвижной системе координат). Однако отличие той и другой матрицы лишь в знаке угла поворота, и одна может быть получена из другой заменой угла поворота на противоположный; та и другая взаимно обратны и могут быть получены друг из друга транспонированием.

Матрица поворота в трёхмерном пространстве

Любое вращение в трехмерном пространстве может быть представлено как композиция поворотов вокруг трех ортогональных осей (например, вокруг осей декартовых координат). Этой композиции соответствует матрица, равная произведению соответствующих трех матриц поворота.
Матрицами вращения вокруг оси декартовой системы координат на угол α в трёхмерном пространстве являются:
Вращение вокруг оси x:

Вращение вокруг оси y:

Вращение вокруг оси z:

После преобразований мы получаем формулы:
По оси Х
x’=x;
y’:=y*cos(L)+z*sin(L) ;
z’:=-y*sin(L)+z*cos(L) ;


По оси Y
x’=x*cos(L)+z*sin(L);
y’=y;
z’=-x*sin(L)+z*cos(L);


По оси Z
x’=x*cos(L)-y*sin(L);
y’=x*sin(L)+y*cos(L);
z’=z;


Все три поворота делаются независимо друг от друга, т.е.

если надо повернуть вокруг осей Ox и Oy, вначале делается поворот вокруг оси Ox, потом применительно к полученной точки делается поворот вокруг оси Oy.

Положительным углам при этом соответствует вращение вектора против часовой стрелки в правой системе координат, и по часовой стрелке в левой системе координат, если смотреть против направления соответствующей оси. Правая система координат связана с выбором правого базиса (см. правило буравчика).

Геометрические преобразования в трёхмерном пространстве

Переход из одной прямолинейной координатной системы в трёхмерном пространстве к другой описывается в общем случае следующим образом:

или в матричном виде:

Рассмотрим матрицы, соответствующие следующим базовым геометрическим преобразованиям:

1. Повороты

2. Растяжение (сжатие):

3. Отражение (зеркалирование)

  • относительно плоскости XOY

  • относительно плоскости YOZ

  • относительно плоскости ZOX

4. Перенос (сдвиг, перемещение) на вектор

Важно: преобразование точки (с сохранением расположения исходной системы координат) соответствует выполнению обратной операции по отношению к преобразованию системы координат. Например, поворот точки на некоторый угол по часовой стрелке вокруг оси X соответствует повороту системы координат против часовой стрелки на тот же угол.

Все остальные преобразования, кроме вышеперечисленных, относятся к сложным преобразованиям. Матрицы сложных преобразований получаются при помощи нахождения произведения матриц, соответствующих базовым геометрическим преобразованиям, которые необходимо осуществить для получения искомого сложного преобразования (*-умножение производится строго в том порядке, в котором эти базовые преобразования производятся, т.к. преобразования некоммутативны).

В качестве примера рассмотрим сложное преобразование, заключающееся во вращении на угол вокруг прямой, проходящей через точку T(X, Y, Z) и имеющую направляющий вектор V(l, m, n) , причемl 2 +m 2 +n 2 =1 , т.е. вектор V является единичным.

Необходимо разложить преобразование на ряд элементарных шагов (базовых преобразований).

Цель: развернем систему координат так, чтобы ось Z совпала с V , после чего поворот на угол будет возможно произвести путем осуществления базового преобразования — поворота на этот угол вокруг оси Z .

Для достижения этой цели выполним следующую последовательность базовых преобразований:

Перспективное изображение возникает при центральном проецировании, т.е. когда центр проецирования (глаз наблюдателя) находится на конечном расстоянии от экрана.

Матрица перспективного преобразования с проецированием на плоскость XOY :

,
где С(0, 0, c) — точка расположения наблюдателя (центр проецирования). Плоскость проецирования, т.е. экран, совпадает с координатной плоскостью XOY .

3.2. Трехмерные преобразования и проекции

Рассмотрим трехмерную декартовую систему координат, являющуюся правосторонней .

Матрица вращения

Примем соглашение, в соответствии с которым будем считать положительными такие повороты, при которых (если смотреть с конца полуоси в направлении начала координат) поворот на 90° против часовой стрелки будет переводить одну полуось в другую. На основе этого соглашения строится следующая таблица, которую можно использовать как для правых, так и для левых систем координат:

Рис. 3.6. Трехмерная система координат

Аналогично тому, как точка на плоскости описывается вектором (x,y ), точка в трехмерном пространстве описывается вектором (x,y,z ).

Как и в двухмерном случае, для возможности реализаций трехмерных преобразований с помощью матриц перейдем к однородным координатам:

[x,y,x ,1] или [X,Y,Z,H ]

[x*,y*,z* 1] = , где Н ¹1, Н ¹0.

Обобщенная матрица преобразования 4´4 для трехмерных однородных координат имеет вид

е. [x,y,z, 1]*T(Dx,Dy,Dz)= [x+Dx,y+Dy,z+Dz, 1].

2. Трехмерное изменение масштаба.

Рассмотрим частичное изменение масштаба. Оно реализуется следующим образом:

Такой же результат можно получить при равных коэффициентах частичных изменений масштабов. В этом случае матрица преобразования такова:

4. Трехмерное вращение

Двухмерный поворот, рассмотренный ранее, является в то же время трехмерным поворотом вокруг оси Z . В трехмерном пространстве поворот вокруг оси Z описывается матрицей

R z ()=

Матрица поворота вокруг оси X имеет вид

Подматрицу 3´3 называют ортогональной, так как ее столбцы являются взаимно ортогональными единичными векторами.

Матрицы поворота сохраняют длину и углы, а матрицы масштабирования и сдвига нет.

скачать

Реферат на тему:

Матрица поворота

План:

    Введение
  • 1Матрица поворота в двумерном пространстве
  • 2Матрица поворота в трёхмерном пространстве
  • 3Свойства матрицы поворота
  • Литература

Введение

Матрицей поворота (или матрицей направляющих косинусов ) называется матрица, умножение любого вектора на которую не меняет его длины.

1.

Матрица вращения

Матрица поворота в двумерном пространстве

В двумерном пространстве поворот можно описать одним углом θ со следующей матрицей линейного преобразования в декартовой системе координат:

Положительным углам при этом соответствует вращение против часовой стрелки в обычной, правосторонней системе координат, и по часовой в левосторонней системе координат.

Сам поворот происходит путём умножения матрицы поворота на вектор, описывающий вращаемую точку:

.

2. Матрица поворота в трёхмерном пространстве

Матрицами вращения вокруг оси декартовой правой системы координат на угол α в трёхмерном пространстве являются:

, , ,

В трёхмерном пространстве для описания поворота можно использовать


Матрицы поворота вектора в декартовой системе координат, соответствующие первым двум способам задания поворота:

Однако, поскольку умножение матриц не коммутативно, то есть: , следовательно, положение системы координат после поворота вокруг трех осей будет зависеть от последовательности поворотов, то существует 6 различных видов матрицы поворота:

  • 1) Поворот около осей: X -> Y -> Z
  • 2) Соответственно: X -> Z -> Y
  • 3) Y -> X -> Z
  • 4) Y -> Z -> X
  • 5) Z -> X -> Y
  • 6) Z -> Y -> X

Получить же нужную матрицу можно путем последовательного перемножения матриц поворота около одной оси (приведенных выше) в соответствии с желаемым порядком.

3. Свойства матрицы поворота

Если - матрица, задающая поворот вокруг оси на угол φ, то:

Литература

  • Лурье А. И. Аналитическая механика - М.:Физматлит - 1961 г. - 824 с.

8.1.1. Преобразование координат в трехмерном пространстве.

B основе программ аффинных преобразований пространственных объектов, а также их про­е­ци­ро­ва­ния на картинную плоскость лежит аппарат однородных координат (см., на­при­мер, СПИСОК ЛИТЕРАТУРЫ). При этом все необходимые для построения проекции и установления нуж­ного ракурса преобразования координат описыва­ются матрицами размером 4 ´ 4 и пред­став­ля­ются в виде суперпозиции некоторых основных преобразований: переноса точки в пространстве на фиксированный вектор, поворота вокруг указанной оси на задан­ный угол, масштабирования вдоль какой-либо оси, сдвига, перспек­тивы и про­е­ци­ро­ва­ния на одну из главных координатных плоскос­тей.


Рис.8.1. Декартова система координат, проекция P’ точки P на плоскость XZ, сетка, на которой задана поверхность, и сечения, параллельные плоскостям XZ и YZ.

Основные преобразования координат. Pассмотрим некоторую декартову систему координат (рис.8.1). Любая точка пространства представляется в ней вектор-матрицей вида (х у z). Mы будем пользоваться однородными координатами точки в пространстве (х у z 1).

B качестве картинной плоскости выберем плоскость XZ, описы­ваемую уравнением Y = 0. Проекция точки объекта на эту плоскость получается в результате умножения (х у z 1) ×A, где

задает преобразование проецирования на плоскость XZ.

Поворот вокруг заданной оси (X, Y и Z соответственно) на указанный угол a описываются следующими матрицами:

где а = sin a, b = соs a. Положительным считается поворот в направлении против часовой стрелки, если смотреть с конца оси, вокруг которой поворачивается объект.

Mатрицы преобразований переноса на фиксированный вектор и масштабирования имеют следующий вид:

Здесь (t x , t y , t z) – вектор переноса; s x , s y , s z — масштабные множители вдоль осей X, Y и Z соответственно, 1/s – множитель общего масштабирования.

Сдвиг заключается в том, что одна из координат точки (зави­симая координата) изменяется на величину, пропорциональную одной из двух оставшихся координат (сдвигающей координате). Пусть зависимой координатой будет координата X, а сдвигающей – коорди­ната Y, тогда матрица сдвига будет иметь вид:

где F – коэффициент сдвига. Проекцию точек объекта на плоскость XZ из центра проекции C можно получить с помощью преобразования центрального проецирования. Eго матрица:

Здесь центр проекции лежит на оси Y и имеет Y-координату, равную (-H), где H > 0 (см. рис.8.1).

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

Pассмотрим сначала случай параллельного проецирования. В за­висимости от того, какой угол образует направление проецирования с картинной плоскостью, параллельные проекции делятся на прямоу­гольные (например, аксонометрические проекции) и косоугольные. B случае прямоугольных проекций направление проецирования пер­пендикулярно картинной плоскости. В случае косоугольных проекций направление проецирования образует с картинной плоскостью угол, отличный от прямого. Более подробные сведения об этих типах про­екций можно найти, например, в СПИСОК ЛИТЕРАТУРЫ.

Более общие аксонометрические проекции можно получить с по­мощью двух последовательных поворотов объекта (сначала вокруг оси Z на некоторый угол Az, а потом вокруг оси X на угол Aх) и затем ортогонального проецирования на плоскость XZ. Для двух наиболее распространенных типов аксонометрических проекций — изометрии и диметрии — углы поворота имеют следующие значения: Az = -45 ° , Aх = 35 ° и Az = -20 ° , Aх = 20 ° .

Hа рис.8.2 приведены примеры изометрической и диметрической проекций одной и той же поверхности, показано также как при этом проецируются на картинную плоскость оси декартовой системы коор­динат.

Для построения косоугольных проекций удобно воспользоваться преобразованием сдвига. Одну из косоугольных проекций, например, можно построить следующей последовательностью преобразований:

1. сдвиг, в котором зависимой осью является ось X, сдвигаю­щей осью — ось Y; коэффициент сдвига F = 1 в случае, если задана «положительная» проекция (рис.8.3, б), и F = -1, если требуется «отрицательная» проекция (рис.8.3, а);

2. сдвиг, в котором зависимой является ось Z, сдвигающей — ось Y и коэффициент сдвига F = 1;

3. проецирование на плоскость XZ.

B случае если ни одна из упомянутых стандартных параллельных проекций (изометрия, ди­мет­рия и косоугольная проекция) по ка­ким-либо причинам не устраивает, можно пос­тро­ить требуемую про­екцию с помощью переноса, поворота, масштабирования и сдвига.

Используя эти преобразования, можно также расположить нужным образом изо­бра­жа­е­мый объект в пространстве и затем построить какую-либо стандартную проекцию.


Рис.8.2. Диметрическая и изометрическая проекции поверхности, а также осей декартовой системы координат.

C помощью основных преобразований координат легко также фор­мируется преобразование, которое позволит получать центральную проекцию объекта из произвольного центра проекции на плоскость, проходящую через начало координат перпендикулярно лучу зрения. Параллельная проекция тоже может быть задана по-другому — вектором направления проецирования, начало которого лежит в точ­ке (0,0,0), а конец определяется программистом.

Tаким образом, для построения произвольной проекции графи­ческого объекта достаточно сформировать матрицу преобразования, являющегося суперпозицией перечисленных выше основных преобразо­ваний координат. Умножая матрицу координат произвольной точки справа на матрицу результирующего преобразования, получим коор­динаты проекции этой точки на картинную плоскость в соответствии с выбранным способом проецирования.


Рис.8.3. «Отрицательная» (а) и «положительная» (б) косоуголь­ные проекции поверхности, а также осей осей декартовой системы координат.

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

Программы преобразований. Чтобы построить желаемую проекцию трехмерного объекта, нужно задать соответствующее преобразова­ние.

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

Kаждая из программ, устанавливающих свое преобразование, формирует матрицу раз­ме­ром 4 ´ 4 и умножает ее слева на матрицу текущего преобразования. B результате преобразования будут выполняться в том порядке, в котором они задавались. Hачальные ус­та­нов­ки выполняет программа INIT, которая формирует единичную матрицу. Обращение к ней отменяет уже накопленное преобразова­ние. Очевидно, когда требуется получить но­вое результирующее преобразование, необходимо начинать с обращения к этой програм­ме.

Получать некоторые стандартные проекции графических объектов позволяют программы ISOMET, DIMET, CABIN, VIEW, AXONOM. Однако иногда необходимо предварительно преобразовать объект (располо­жить некоторым образом в пространстве). Для этой цели можно вос­пользоваться программами, задающими поворот, растяжение, пере­нос, сдвиг. Это программы: TDROT, TDSCAL, TDTRAN, SHEAR.

Любое текущее преобразование можно сохранить (программа SAVETR) и при желании восстановить (программа SETTR). Bообще с помощью программы SETTR можно установить в качестве текущего преобразования произвольное преобразование, расширив тем самым круг основных преобразований координат.

Программа INIT производит инициализацию результирующего преобразования. Программа без параметров.

Программа TDTRAN(DX, DY, DZ) задает перенос объекта в про­странстве от­но­си­тель­но начала координат. Параметры программы DX,DY, DZ определяют вектор пе­ре­но­са.

Программа TDROT(NAXES,ALPHA) задает поворот системы коорди­нат относительно указанной оси на заданный угол. Eе параметры:

NAXES номер оси, относительно которой выполняется поворот: Кроме того, если NAXES < 0, угол поворота считается заданным в радиа­нах, NAXES > 0 — в градусах; ALPHA угол поворота: ALPHA > 0 — поворот выполняется против часовой стрелки, относительно оси, вокруг которой выполняется поворот; ALPHA < 0 — поворот выполняется по часовой стрелке.

Программа TDSCAL(NAXES,SCALE) позволяет выполнить растяжение (сжатие) вдоль ука­зан­ной оси и, возможно, симметричное отражение объекта. Параметры программы сле­ду­ю­щие:

NAXES номер оси, вдоль которой выполняется растяжение (сжатие): SCALE коэффициент растяжения (сжатия): SCALE ³ 1 — растяжение в SCALE раз, SCALE О (0,1) — сжатие в 1/SCALE раз, SCALE < 0 симметричное отражение относительно соответству­ющей координатной плоскости или начала координат и растяжение в |SCALE| раз или сжатие в 1/|SCALE| раз.

Программа SHEAR(I,J,F) определяет сдвиг. Параметры про­граммы:

I номер сдвигающей координаты: J номер зависимой координаты; F коэффициент сдвига.

При I = J данное преобразование вырождается в преобразование масштабирования вдоль I-ой оси с коэффициентом растяжения равным (F+1).

Программа ISOMET формирует матрицу результирующего преобра­зования для по­лу­че­ния изометрической проекции с учетом текущего преобразования.

6.Перенос и повороты в трехмерном пространстве.

Программа без па­ра­мет­ров.

Программа DIMET позволяет сформировать матрицу результирую­щего пре­об­ра­зо­ва­ния для получения диметрической проекции с уче­том текущего преобразования. Прог­рам­ма без параметров.

Программа CABIN(J) позволяет сформировать матрицу результи­рующего преобразования для получения косоугольной проекции с учетом текущего преобразования. Параметр программы J определяет вид косоугольной проекции. При J = 1 получается положительная проекция, а при J = -1 — отрицательная проекция.

Программа VIEW(X,Y,Z) позволяет сформировать матрицу цент­рального проецирования на плоскость, перпендикулярную лучу зре­ния. Параметры программы:

X,Y,Z координаты центра проекции (точки зрения).

Изменяя координаты точки зрения можно получать различные проекции объекта. Для получения нужного ракурса иногда бывает удобнее перемещать в пространстве сам объект, оставляя центр проекции неподвижным. Этого можно достичь обращением к програм­мам TDROT и TDTRAN (до вызова программы VIEW).

При обращении к программе VIEW надо следить, чтобы центр проекции не оказался внутри изображаемого объекта, иначе резуль­таты работы программы рисования THREED будут непредсказуемы.

Программа AXONOM(X,Y,Z) формирует матрицу результирующего преобразования для получения аксонометрической проекции с учетом текущего преобразования. Hаправление проецирования определяется вектором, соединяющим точку (X,Y,Z) с началом координат.

A одномерный массив длины 16.

Программа SETTR(A) позволяет занести в матрицу текущего преобразования содержимое заданного массива A. Предполагается, что в массиве A последовательно записаны столбцы матрицы разме­ром 4 ´ 4.

Bспомогательные и служебные программы.

Программа HCUNIT(A) формирует единичную матрицу A размером 4 ´ 4.

Программа HCMULT(A,B) перемножает две квадратные матрицы четвертого порядка A ´B. Pезультат помещается на место матрицы A.

Программа HCPRSP(H) реализует преобразование центрального проецирования. Параметр H задает Y-координату центра проекции, расположенного на оси Y (H > 0).

Программа HCINV(X,Y,Z,XP,YP,ZP) вычисляет координаты (XP,YP,ZP) центра проекции с учетом обратного преобразования координат. Предварительно вычисляется матрица обратного преобра­зования.

Программа HCROT1(X,Y,Z) позволяет найти результирующее преобразование, переводящее двумя последовательными поворотами точку A(X,Y,Z) в точку с координатами .

Матрицей поворота (или матрицей направляющих косинусов) называется ортогональная матрица, которая используется для выполнения собственного ортогонального преобразования в евклидовом пространстве. При умножении любого вектора на матрицу поворота длина вектора сохраняется. Определитель матрицы поворота равен единице.
Обычно считают, что, в отличие от матрицы перехода при повороте системы координат (базиса), при умножении на матрицу поворота вектора-столбца координаты вектора преобразуются в соответствии с поворотом самого вектора (а не поворотом координатных осей; то есть при этом координаты повернутого вектора получаются в той же, неподвижной системе координат). Однако отличие той и другой матрицы лишь в знаке угла поворота, и одна может быть получена из другой заменой угла поворота на противоположный; та и другая взаимно обратны и могут быть получены друг из друга транспонированием.

Матрица поворота в трёхмерном пространстве

Любое вращение в трехмерном пространстве может быть представлено как композиция поворотов вокруг трех ортогональных осей (например, вокруг осей декартовых координат). Этой композиции соответствует матрица, равная произведению соответствующих трех матриц поворота.
Матрицами вращения вокруг оси декартовой системы координат на угол α в трёхмерном пространстве являются:
Вращение вокруг оси x:

Вращение вокруг оси y:

Вращение вокруг оси z:

После преобразований мы получаем формулы:
По оси Х
x"=x;
y":=y*cos(L)+z*sin(L) ;
z":=-y*sin(L)+z*cos(L) ;


По оси Y
x"=x*cos(L)+z*sin(L);
y"=y;
z"=-x*sin(L)+z*cos(L);


По оси Z
x"=x*cos(L)-y*sin(L);
y"=-x*sin(L)+y*cos(L);
z"=z;


Все три поворота делаются независимо друг от друга, т.е. если надо повернуть вокруг осей Ox и Oy, вначале делается поворот вокруг оси Ox, потом применительно к полученной точки делается поворот вокруг оси Oy.

Положительным углам при этом соответствует вращение вектора против часовой стрелки в правой системе координат, и по часовой стрелке в левой системе координат, если смотреть против направления соответствующей оси. Правая система координат связана с выбором правого базиса (см. правило буравчика).



Понравилась статья? Поделитесь ей
Наверх