Двумерное вращение вокруг произвольной оси

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

.

Выполнив две операции умножения матриц, можно записать

.

Предположим, что центр изображения имеет координаты (4, 3) и жела­тельно повернуть изображение на 90° против часовой стрелки вокруг его ^центральной оси. Действие, вы­полненное с помощью матрицы

,

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

.

Затем следует применить матрицу вращения и, наконец, привести резуль­таты к началу координат посредством обратной матрицы. Вся операция

может быть объединена в одну матричную операцию путем вы­полнения матричных преобразований вида

.

Рис. 3.5 Вращение: a — вокруг оси х; б — вокруг оси y; в — вокруг оси z

В результате будет получено х* =Х/Н и у* = Y/H. Двумерные вращения около каждой оси ортогональной сис­темы представ­лены на рис. 3.5.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: