Цитата(AruNimotsi @ 20.11.2009 12:15)

Не думал как оно будет сложно в программном коде и насколько подойдет .. но суть следующая
1. Приводим начало координат в исходную точку вектора
Все векторы и так считаются от нуля.
Цитата
2. Проецируем вектор на любую плоскость - например XY
А если это вектор (0, 0, 1)? Что делать? Опять разбирать эти случаи? А ещё вектор может быть (0.000000001, 0, 10000000), такой тоже не рекомендуется проецировать на XY.
Цитата
3. В плоскости XY строим перпендикуляр к проекции он и будет первым вектором
Собсна, именно так у меня первый вектор и ищется, с разбором случаев и с нормированием. Слишком прямолинейно и некрасиво.