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

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

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





В компьютерной графике принято вычислять новое значение вектора путем умножения старого на матрицу поворота или сдвига. Наша цель — найти коэффициенты матрицы поворота, которая, воздействуя на вектор 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

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