Вы можете найти косинус и синус этого угла, воспользовавшись
векторным и
скалярным произведениями между векторами двух направлений.
Достаточно только иместь координаты обоих векторов (синего и фиолетового) в евклидовом пространстве.
Делаете произведения, делите длину вектора или число на длины изначальных векотров и получаете синус и косинус. Этого уже достаточно для матрицы поворота. Но если вам нужен сам угол, то скормите эти значения функции atan. На знаю C#, но точно должна быть версия, которая получает значения синуса и косинуса.