#vector #xna #heading
#вектор #xna #заголовок
Вопрос:
Я ищу способ найти векторы под прямым углом к заголовку игрового объекта. Один слева и один справа.
Я использую XNA, если это каким-либо образом влияет на ответ.
Редактировать: это 2D-операция. Я видел на другом сайте, что вектор по часовой стрелке — это просто [-y, x], а вектор против часовой стрелки — [y, -x]. Кажется, это работает на бумаге.
Спасибо.
Ответ №1:
векторное произведение (иначе перекрестное произведение)
Ответ №2:
Векторное перекрестное произведение даст вам другой вектор, который перпендикулярен двум входным векторам.
Скалярное произведение можно использовать, чтобы определить, каков угол между двумя векторами.
Однако в приведенном вами описании проблемы указан только один входной вектор — направление объекта. Следовательно, решением являются все векторы в плоскости, к которой направление объекта перпендикулярно.
Ответ №3:
Я думаю, вам следует заглянуть в функцию Vector3.Cross, я знаю, что вы хотите сделать это для 2D-векторов, но это не должно иметь значения, просто установите для вашего z-компонента Vector3 значение 0.
Вам также, вероятно, следует прочитать о перекрестных продуктах и точечных продуктах, поскольку они оба очень важны для графического программирования и даже для программирования игр в жанре genrel, а также помогут вам лучше понять, как решить многие похожие проблемы, с которыми вы столкнетесь при программировании 🙂