В 2D стандартное положение вектора — вниз по положительной оси X. Есть ли эквивалентная позиция для кватернионов?
Стандартное положение кватерниона?
comment
Я никогда не слышал о стандартном положении вектора. С чего взял?
- person Mat   schedule 02.09.2011
comment
для вектора нет стандартной позиции.
- person sashang   schedule 02.09.2011
comment
Я имел в виду стандартный позиционный угол. Дело в том, что atan2() возвращает 0 градусов для угла вектора, направленного вниз по положительной оси x. Это полезно, потому что любой рисунок (стрелки и т. Д.), Который будет импортирован в игру, можно сделать так, чтобы он совпадал с векторами в игре, указав его в положительном направлении X.
- person CuriousGeorge   schedule 02.09.2011
Ответы (1)
Не существует «стандартного положения вектора». В 2D или 3D.
Конечно, существует общее математическое соглашение о том, что направление X, Y угла равно (cos (угол), sin (угол)). Это означает, что если угол равен 0, то вектор указывает на положительную ось X. Но это далеко не «стандартное положение вектора».
Хотя в некоторых математических операциях кватернионы могут показаться трехмерными углами, они не являются углами. Кватернионы (с точки зрения графики) представляют ориентацию пространства относительно другого пространства.
person
Nicol Bolas
schedule
02.09.2011
как отмечалось в комментарии выше, цель этого вопроса — импортировать в игру любой направленный или стреловидный рисунок в определенной позе, чтобы он совпадал с любым вектором в игре.
- person CuriousGeorge; 02.09.2011
@Nick: Кватернионы - это не углы. Вы не можете превратить направление в кватернион, не имея системы отсчета. Действительно, вы не можете превратить 2D-вектор в угол без системы отсчета;
atan2
делает это, определяя систему отсчета.
- person Nicol Bolas; 02.09.2011
поэтому такой функции не существует: Quaternion q = RotateTo(vector3); объект.RotateBy(q); где я могу указать свой объект в определенном направлении в редакторе, чтобы он совпадал с этим вектором?
- person CuriousGeorge; 03.09.2011
@Nick: Вы можете создать такую функцию, сделав то, что делает
atan2
: определив систему отсчета. Определение исходной системы координат, к которой относятся все кватернионы, используемые для этой цели. Ваша функция RotateTo
создаст изменения ориентации относительно этой системы координат.
- person Nicol Bolas; 03.09.2011
хорошо, это имеет смысл. Я думаю, что нашел то, что мне нужно... Эта функция может принимать любое направление ввода, которое я хочу: unity3d.com/support/documentation/ScriptReference/. Спасибо
- person CuriousGeorge; 03.09.2011