2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 11:51 
Аватара пользователя
Как, имея некий вектор в 3Д, проще всего получить перпендикулярный ему (произвольный из множества)?

Векторное умножение на любой орт не всегда возможно (так как вектор может быть коллинеарен этому орту).

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 12:51 
Аватара пользователя
Из скалярного произведения можно выразить.
Dims в сообщении #365208 писал(а):
(так как вектор может быть коллинеарен этому орту).

В этом случае можно в качестве результата взять другой орт.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 13:03 
Аватара пользователя
Я один раз для своих надобностей делал так (это может быть удобно или неудобно, смотря в каком виде у вас тот вектор изначально):
"некий" вектор - $(\cos\theta\cos\varphi,\cos\theta\sin\varphi,\sin\theta)$;
перпендикулярный - $(\sin\theta\cos\varphi,\sin\theta\sin\varphi,-\cos\theta)$;
ещё один, совсем :lol: перпендикулярный - $(-\sin\varphi,\cos\varphi,0)$.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 13:15 
Можно так: если решить уравнение $\mathbf{a x} \equiv (a_1,\;a_2,\;a_3)(x_1,\;x_2,\;x_3) = 0$, получим:
Если $a_1 \ne 0$, $x_1 = - \frac{a_2}{a_1}x_2 - \frac{a_3}{a_1}x_3$ и $x_2,\;x_3$ — любые.
Если $a_1 = 0$, но $a_2 \ne 0$, $x_2 = - \frac{a_3}{a_2}x_3$, $x_1,\;x_3$ — любые.
Если только $a_3 \ne 0$, $x_3 = 0$ и остальные координаты любые.

Если я правильно решил.

О, caxap как раз предложил вот этот способ, через скалярное произведение.

-- Сб окт 23, 2010 16:18:14 --

Реализация должна быть достаточно быстрой!

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 15:57 
Берем вектор (e,e,pi)x(a,b,c). Он будет перпендикулярен вектору (а,b,с)

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 21:04 
Аватара пользователя
vvvv в сообщении #365295 писал(а):
Берем вектор (e,e,pi)x(a,b,c). Он будет перпендикулярен вектору (а,b,с)

А если (abc) как раз и равно (eepi)?

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 21:13 
Ну так можно взять ко всем координатам добавить, например, 1, и на полученный вектор умножать. :roll:

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 21:15 
Dims в сообщении #365416 писал(а):
vvvv в сообщении #365295 писал(а):
Берем вектор (e,e,pi)x(a,b,c). Он будет перпендикулярен вектору (а,b,с)

А если (abc) как раз и равно (eepi)?

А между прочим, это была достаточно разумная рекомендация. Для наугад заданного исходного вектора вероятность того, что векторное произведение окажется равным нулю -- нулю и равна. А если исходный вектор имел ещё и рациональные координаты -- так страшно даже подумать, что выйдет.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 22:17 
Аватара пользователя
Dims в сообщении #365208 писал(а):
Как, имея некий вектор в 3Д, проще всего получить перпендикулярный ему (произвольный из множества)?


Вот есть вектор: $\[a = \left( {{a_1},{a_2},{a_3}} \right)\]$. Ему, очевидно, перпендикулярен $\[b = \left( {0,{a_3}, - {a_2}} \right)\]
$. А еще $\[c = \left( {{a_2}, - {a_1},0} \right)\]$.

Никаких синусов, углов и случаев. По-моему -- проще некуда...

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 22:22 
Аватара пользователя
Кроме того, что Ваши векторы могут оказаться целиком нулевыми, ога.
От проблемы исключительных случаев не уйти. Думаю, это имеет что-то делать с задачей о причесании ёжика.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение23.10.2010, 22:23 
Аватара пользователя
А, вон оно что. Ну ладно. Хотя, формально, на вопрос ответил :-)

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение24.10.2010, 12:56 
Предыдущее обсуждение.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение24.10.2010, 20:44 
Dims в сообщении #365416 писал(а):
vvvv в сообщении #365295 писал(а):
Берем вектор (e,e,pi)x(a,b,c). Он будет перпендикулярен вектору (а,b,с)

А если (abc) как раз и равно (eepi)?

Имелось ввиду, что один вектор имеет трансцендентные координаты, а другой алгебраические -в этом случае ини не могут быть параллельны.

 
 
 
 Re: Построить перпендикуляр к произвольному вектору в 3D
Сообщение26.10.2010, 22:33 
Аватара пользователя
Спасибо!
Ну мне, конечно, пришлось рассмотреть случаи, одним ходом не вышло.

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group