Недостаток матрицы
Алексея К. состоит в том, что вектор
должен быть нормирован (что, впрочем, легко исправить)
Gordmit,
я нисколько не возражаю против наличия недостатков в моём решении (сам их обсуждал), но только не в том, что Вы написали. Это не более чем упрощение нотации, которое лишь стоило пометить другими буковками типа
. "Исправлять" его нет никакой нужды; наоборот, любой программист скорее всего использует это, в том числе и при программировании Вашего решения.
Могу вот такую матрицу Вам предложить:
где
,
. В данном случае если
обращается в 0, то это означает, что
, т.е. вектор уже имеет вид
и поворачивать ничего не нужно.
Последнее утверждение неверно: автор ставил задачу так:
Нужно найти унитарную матрицу поворота 3х3, которая бы укладывала этот вектор на ось Х. Т.е. его коодинаты после такого поворота должны стать {r,0,0}, где r - длина вектора.
Стало быть, вектор
должен принять вид
, и "поворачивать ничего не нужно", если вектор уже имеет вид
. То есть мы возвращаемся к тем же баранам, когда надо проверять особый случай. Разрешать особый случай предварительным поворотом с матрицей
об этом я сильно не задумывался. Здесь могут быть какие-то соображения о непрерывности поворотов, которые склонили меня именно к предельной матрице (в Вашем случае она будет другая), но автор этого не требовал, и мне было лень додумывать.
Как, впрочем, всегда лень, (и, похоже, не мне одному) ковырять эти многочисленные (на форуме) задачки с трёхмерными поворотами. Так что ответ на вопрос автора
Возможно ли в принципе построить такую матрицу поворота, чтобы ее элементы были определены для любого ненулевого вектора?
на мой взгляд, не получен. По-прежнему, требуется особая тщательность вычислений при
, хотя случай, как быть при
в знаменателе, автора почему-то не заинтересовал...
-- 13 июн 2009, 10:31 --По хорошему, здесь бы надо попробовать выразить всё через тангенсы половинных углов, чьи направляющие косинусы есть
, из которых ввиду, наличия нормировочного соотношения, использовать только два (в силу особого статуса оси OX таковыми, видимо, будут
и
), и посмотреть, не сократятся ли потенциальные неопределённости.
А ещё можно подумать, что все искомые матрицы образуют однопараметрическое семейство и поиграть с параметром. Но это уже если пол вымыт, помидоры пропасынкованы, кина посмотрены, и совсем скучно...