![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.12.2010
Сообщений: 15
|
![]()
Добрый день.
Подскажите как реализовать поворот вектора A1 (X1, Y1, Z1) в положение A2 (X2, Y2, Z2), зная при этом угол между плоскостью поворота и осью X (Y), и угол между векторами. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Можно чуть пояснить, какие величины даны? Если только два угла, то A2 однозначно не определяется. Если даны координаты обоих векторов, то углы уже не нужны.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.12.2010
Сообщений: 15
|
![]()
Даны X1, Y1, Z1. А A2 это новое положение вектора A1. Ну, соответственно, задача найти X2, Y2, Z2.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Задача не имеет однозначного решения: плоскость поворота может быть выбрана более чем одним способом.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 01.12.2010
Сообщений: 15
|
![]()
Плоскость поворота всегда параллельна Z оси, а вектор всегда идет из нуля. Если вы об угле, то, в принципе, не важно. Пусть будет X отсчетной.
В своих попытках я использовать матрицы поворота по осям. Сначала поворачивал по Х, затем по Y. Соотношение углов для поворота брал из сектора. Но сами понимаете, что получилось. Точка начинала заворачиваться ![]() Последний раз редактировалось NoSilence; 25.03.2013 в 19:42. |
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Цитата:
Но теперь нам не нужен угол между плоскостью поворота и осью 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). |
||
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
опять я опять мемо | 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 |