Xна вперед вектор? - PullRequest
       3

Xна вперед вектор?

0 голосов
/ 21 июня 2011

Как я могу легко это сделать?Есть ли какая-либо функция в рамках, которую я могу использовать, так как я создал свою собственную, но я чувствую, что она, вероятно, медленная (новичок в программировании, поэтому я понятия не имею).

public Vector3 anglestoforward(Vector3 angles)
{
    return new Vector3((float)(Math.Cos(angles.Y) * Math.Cos(angles.X)),(float)(Math.Sin(angles.Y) * Math.Cos(angles.X)),(float)(Math.Sin(angles.X * -1)));
}

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Но это всегда одно и то же, дай мне пример того, как я бы использовал это ...

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

В принципе, углы легко понять и они интуитивно понятны, но математика для работы с ними становится очень сложной по сравнению с подходом линейной алгебры. Подход линейной алгебры может потребовать немного больше обучения, но он действительно открывает широкие возможности для создания 3D-алгоритмов.

Встроенные методы различных классов в Xna больше ориентированы на помощь в линейном алгебраическом подходе к 3D, чем на угловой подход.

Если хотите, вот статья, которую я написал, которая описывает основы работы с векторами и матрицами вместо углов: Подход Vector Math

0 голосов
/ 21 июня 2011

Vector3 имеет свойство Вперед . Если вы используете матрицу, вы можете использовать свойство Matrix.Forward . Оба вернут Vector3, содержащий компоненты Forward vector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...