Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Поворот точки в пространстве вокруг произвольной оси





В компьютерной графике принято вычислять новое значение вектора путем умножения старого на матрицу поворота или сдвига. Наша цель — найти коэффициенты матрицы поворота, которая, воздействуя на вектор v, повернет его на угол φ вокруг оси s. Рассмотрим, как изменится вектор при его повороте вокруг некоторой оси s на угол φ.

n
v
s
φ
r
rf
b
vf
q
o
nf
k

Начальное положение вектора обозначим буквой v, а конечное — буквой vf (см. рис.). Рассмотрим конец вектора v, как точку трехмерного векторного пространства с началом в точке o. Тогда начальному положению конца вектора v будет соответствовать радиус-вектор r, а конечному rf. Произвольная ось вращения определяется точкой q и направлением s с ортом k. Пусть q есть радиус-вектор точки q. Выполним поворот точки r вокруг оси s на угол φ, отсчитываемый против часовой стрелки, если взгляд направить навстречу вектору s.

Плоскость вращения, а, следовательно, и векторы n, nf и b, лежащие в этой плоскости, перпендикулярны оси вращения s. Из рисунка видно, что вектор v можно представить, как разность двух векторов r – q. Этот же вектор можно представить, как сумму других векторов s + n. Манипулируя этими равенствами, попытаемся выразить конечное положение точки rf через исходные величины: r, q и φ. Имеем следующие векторные равенства:

n = v – s,

s = (v · k) k, // Скалярное произведение (v · k) определяет длину оси вращения s, а орт k — его направление

n = v – (v · k) k,

rf = q + s + nf

При вращении вектор s не изменится, а вектор n повернется на угол φ в сторону вектора b и займет положение nf. Вектор b лежит в плоскости вращения и ортогонален вектору n. Он равен векторному произведению b = k × n. Так как орт k имеет единичную длину, то длина |b| вектора b равна длине вектора |n| (радиусу вращения). Заметим, что векторное произведение других векторов k × v — это вектор, который имеет то же самое направление и длину. Длина равна |k||v|sin(v,k) в силу определения векторного произведения. Так как |v|sin(v,k) = |n|, то справедливы равенства.

b = k × n = k × (v – s) = k × (v – (v · k) k) = k × v

После поворота на угол φ вектор n станет равным вектору nf = n·cosφ +b·sinφ. В этом можно убедиться, рассматривая следущий рисунок. Учтите, что n, nf и b имеют одинаковую длину, но разные направления.

>

n
φ
b
n•cosφ
b•sinφ
nf
|nf|sinφ
|nf|cosφ

После поворота рассматриваемая точка r будет определяться радиус-вектором rf.

rf = q + s + nf = q + s + n · cosφ + b · sinφ =

= q + (v · k) k + (v – (v · k) k) cosφ + (k × n) sinφ =

= q + (v · k) k + cosφ (v – (v · k) k) + sinφ (k × (v – (v · k) k)),

Преобразуем выражение (v · k) k. Скалярное произведение (v · k) = является множителем, который стоит перед вектором k. В покомпонентном виде это произведение имеет вид.

(v · k) k = = kk · v,

Напомним, что два стоящих рядом вектора kk обозначают операцию диадного произведения векторов, которое является матрицей. Например, диадное произведения произвольных векторов x и y равно:

xy =

В нашем случае диадное произведение kk есть матрица размерностью 3×3, составленная из компонентов орта оси вращения. Мы приблизились к цели — получить формулу для матрицы поворота. Теперь вектор (v · k) k записан в виде произведения матрицы kk на вектор v. Подставим это выражение в формулу для вычисления rf.

rf = q + (v · k) k + cosφ (v – (v · k) k) + sinφ k × v =

= q + kk · v + cosφ (v – kk · v) + sinφ k × v =

= q + kk · v + cosφ (I – kk) · v + sinφ k × v = q + A · v

Матрица A, как было сказано выше, поворачивает вектор v на угол φ вокруг оси s. Ее коэффициенты мы сейчас и пытаемся определить. Распишем в покомпонентном виде векторное произведение k × v.

k × v =

Заметим, что тот же результат может быть получен путем умножения матрицы (обозначим ее k×) на вектор v.

k × v =

Подставим матрицу с необычным обозначением k× в развернутое выражение для радиуса-вектора rf. После этого можно выписать выражение для матрицы поворота A.

A = (1 – cosφ) kk + cosφ I + sinφ k×

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

kk = , I = , k× =

В развернутом виде матрица A будет иметь такой вид.

A =

Матрица А является ортогональной. Это означает, что при ее транспонировании изменится только знак перед последним ее слагаемым (sinφ k×), что соответствует повороту точки на угол –φ. Окончательное выражение для радиуса-вектора rf (конца вектора v) получим, подставив значение v = r – q.

rf = q + A · (r – q)

Введем обозначение: cφ = 1 – cosφ и учтем, что на практике достаточно часто ось вращения проходит через начало координат. В этом случае выражение для rf будет иметь более простой вид.

rf = A · v =







Дата добавления: 2015-10-19; просмотров: 1824. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

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

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

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия