Стандартное положение кватерниона?

В 2D стандартное положение вектора — вниз по положительной оси X. Есть ли эквивалентная позиция для кватернионов?


person CuriousGeorge    schedule 02.09.2011    source источник
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
comment
как отмечалось в комментарии выше, цель этого вопроса — импортировать в игру любой направленный или стреловидный рисунок в определенной позе, чтобы он совпадал с любым вектором в игре. - person CuriousGeorge; 02.09.2011
comment
@Nick: Кватернионы - это не углы. Вы не можете превратить направление в кватернион, не имея системы отсчета. Действительно, вы не можете превратить 2D-вектор в угол без системы отсчета; atan2 делает это, определяя систему отсчета. - person Nicol Bolas; 02.09.2011
comment
поэтому такой функции не существует: Quaternion q = RotateTo(vector3); объект.RotateBy(q); где я могу указать свой объект в определенном направлении в редакторе, чтобы он совпадал с этим вектором? - person CuriousGeorge; 03.09.2011
comment
@Nick: Вы можете создать такую ​​функцию, сделав то, что делает atan2: определив систему отсчета. Определение исходной системы координат, к которой относятся все кватернионы, используемые для этой цели. Ваша функция RotateTo создаст изменения ориентации относительно этой системы координат. - person Nicol Bolas; 03.09.2011
comment
хорошо, это имеет смысл. Я думаю, что нашел то, что мне нужно... Эта функция может принимать любое направление ввода, которое я хочу: unity3d.com/support/documentation/ScriptReference/. Спасибо - person CuriousGeorge; 03.09.2011