Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 17:29   #1
NoSilence
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 15
По умолчанию Опять матрицы

Добрый день.

Подскажите как реализовать поворот вектора A1 (X1, Y1, Z1) в положение A2 (X2, Y2, Z2), зная при этом угол между плоскостью поворота и осью X (Y), и угол между векторами.
Изображения
Тип файла: jpg rotate.JPG (7.6 Кб, 73 просмотров)
NoSilence вне форума Ответить с цитированием
Старый 25.03.2013, 18:00   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Можно чуть пояснить, какие величины даны? Если только два угла, то A2 однозначно не определяется. Если даны координаты обоих векторов, то углы уже не нужны.
Abstraction вне форума Ответить с цитированием
Старый 25.03.2013, 18:12   #3
NoSilence
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 15
По умолчанию

Даны X1, Y1, Z1. А A2 это новое положение вектора A1. Ну, соответственно, задача найти X2, Y2, Z2.
NoSilence вне форума Ответить с цитированием
Старый 25.03.2013, 18:48   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Задача не имеет однозначного решения: плоскость поворота может быть выбрана более чем одним способом.
Abstraction вне форума Ответить с цитированием
Старый 25.03.2013, 19:13   #5
NoSilence
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 15
По умолчанию

Плоскость поворота всегда параллельна Z оси, а вектор всегда идет из нуля. Если вы об угле, то, в принципе, не важно. Пусть будет X отсчетной.

В своих попытках я использовать матрицы поворота по осям.

Сначала поворачивал по Х, затем по Y. Соотношение углов для поворота брал из сектора. Но сами понимаете, что получилось. Точка начинала заворачиваться

Последний раз редактировалось NoSilence; 25.03.2013 в 19:42.
NoSilence вне форума Ответить с цитированием
Старый 26.03.2013, 12:06   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
вектор всегда идет из нуля
Избыточная... вернее, бессмысленная фраза.
Цитата:
Плоскость поворота всегда параллельна Z оси
О. То есть, X1Y2 = X2Y1.
Но теперь нам не нужен угол между плоскостью поворота и осью OX: Y1/X1 = tg(в), где в - угол между плоскостью поворота и OX. Мы его уже знаем.

X1X2+Y1Y2+Z1Z2 = |A1|^2*cos(а), где а - угол поворота.
X1^2+Y1^2+Z1^2 = X2^2+Y2^2+Z2^2.
В принципе, три уравнения, три неизвестных, можно просто решить.

А можно сказать, что ось поворота есть (Y1, -X1, 0) и мы поворачиваем пространство вокруг неё на угол а. Матрица поворота откапывается в Вики (только надо не забыть привести вектор к единичному и учесть случай Y1=X1=0).
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
опять я опять мемо nyasha2013 Помощь студентам 2 19.05.2011 21:09
Опять матрицы ДмитрийРэй Помощь студентам 1 19.12.2010 11:38
опять матрицы Максикок Помощь студентам 4 23.11.2010 20:12
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08