Urho Node вращается вокруг - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь повернуть объект вокруг точки в UrhoSharp. Я много узнал о том, как работает Quaternions, но он использует метод node.RotateAround, похоже, не следует правилам.

Когда w = 0 или PI, я, кажется, получаю правильное вращение. Однако, если я использую любое другое число, я не могу знать, в каком направлении будет вращаться объект.

float w = 0;//or PI
node.RotateAround(point, new Quaternion(Vector3.Up, w) , transformSpace.World);

Если у кого-то есть какие-то проблемы с работой с кватерионами, я был бы признателен.

1 Ответ

0 голосов
/ 02 июля 2019

Я думаю, что для использования этого конструктора вам нужно использовать экспоненциальную карту кватернионов:

 var q = new Quaternion(Math.Sin(w/2)*Vector3.Up, Math.Cos(w/2));

Но, возможно, вы хотите построить из оси и угла:

// note that in this constructor "w" is in degrees, not radians
var q = Quaternion.FromAxisAngle(Vector3.Up, w/2);
...