Имеется бумага от Möller и Hughes из Journal of Graphics Tools, которая называется «Эффективное построение матрицы для поворота одного вектора на другой», это именно то, что вам нужно. Также имеется пример кода .
Учитывая вашу конкретную проблему, вы, вероятно, можете немного упростить вещи из точной процедуры, предложенной в статье.