Я знаю, что могу получить полный угол двух векторов на точечный продукт их обоих, но что, если я просто хочу разбить угол на составляющие угла на X и угол на Y?Как получить угол x или y двух векторов?
ответ
Это зависит от того, что вы подразумеваете под от X и от Y. Если вы хотите получить угол на оси вектора, вы захотите использовать инверсную тригонометрию, скорее всего, atan2
.
This reference предназначен для C++, но функция должна работать одинаково для большинства языков.
да, спасибо, я хочу получить угол на оси вектора. – paranoidroid
Углы являются скалярами, а не векторами. У них нет таких компонентов, как векторы.
Вы запрашиваете компоненты вектора, представляющего сумму двух векторов? У этого есть компоненты в направлениях х и у.
Этот вопрос не имеет смысла, как указано. Пожалуйста, пересмотреть, чтобы мы могли вам помочь.
Да, я имею в виду угловые компоненты в направлениях х и у. Извините за беспорядок! – paranoidroid
Компоненты какого вектора? Два вектора в точечном произведении? Каждый из них по-прежнему имеет свои собственные компоненты. Сумма или разница двух? Перекрестный продукт? Ваш вопрос STILL не имеет никакого смысла. – duffymo
Скажем, у меня есть два вектора (0,0,1) и (0,1,0). В этом случае угол составляет 90 градусов. Угол на оси y равен 90 градусам, а угол по оси x равен нулю. Я хочу уметь это понять для любого произвольного угла. – paranoidroid
Вы не государство 2D против 3D .... но ...
Для 3D векторов: угол = экоса (v1 • v2) ... нормализуют v1 и v2 перед тем, как скалярное произведение.
Ответы на ваши другие вопросы можно найти здесь: Maths - Angle between vectors
Используйте векторы A
и B
, например. A . B = |A||B| cos (angle)
для 3d векторов или 2d векторов.
hu? что? что такое «угол на X»? – leonbloy
Нет такой вещи, как «угол на X» или «угол на Y». Векторы имеют X и Y компоненты, но скаляры (например, углы) этого не делают. мм1, вам нужно будет более подробно объяснить, что вы пытаетесь сделать. –