Цитата(Lapp @ 15.11.2009 14:27)
А чем конкретно оно тебе не нравится?
Слишком прямолинейно и уродливо. Учитывая, что мне важна скорость.
К счастью, в большинстве случаев V = (*, 0, 0), этот случай прост, он разбирается в первую очередь.
Цитата
Я, думаю, делал бы так..
Ищем такое преобразование координат (включающее перенос, поворот и масштаб - то есть, не меняющее углы и соотношения длин) которое, скажем, орт Х перводит в наш вектор V. Далее берем орты Y и Z и выпоняем над ними это самое преобразование. Вроде, все..
Ищем такую ортогональную матрицу M, такую, что MX=V. То есть первой строчкой этой матрицы будет V. А второй и третьей - V1 и V2. Таким образом задача свелась к самой себе. Думал я об этом, думал...