Но это всегда одно и то же, дай мне
пример того, как я бы использовал это ...
Несмотря на то, что ваш код будет работать и его производительность не будет проблемой, если делать это несколько раз за кадр, когда вы захотите сделать что-то большее, чем просто базовые знания в 3D-программировании, вы научитесь гораздо больше полагаться на линейную алгебру ( векторная математика), а не углы и тригонометрия. Это также будет включать сохранение вашей ориентации в виде матриц или кватернионов, а не углов. Вы обнаружите, что вам почти никогда не нужно разрешать набор углов для вектора, как вы просите.
В принципе, углы легко понять и они интуитивно понятны, но математика для работы с ними становится очень сложной по сравнению с подходом линейной алгебры. Подход линейной алгебры может потребовать немного больше обучения, но он действительно открывает широкие возможности для создания 3D-алгоритмов.
Встроенные методы различных классов в Xna больше ориентированы на помощь в линейном алгебраическом подходе к 3D, чем на угловой подход.
Если хотите, вот статья, которую я написал, которая описывает основы работы с векторами и матрицами вместо углов: Подход Vector Math