Я пытаюсь повернуть объект в проекте WPF.У меня есть вопрос, есть ли функция, как в Unity, например: shape.transform.rotation = q.ToUnityQuaternion();
Где все, что вам нужно, это поместить вычисленный кватернион в функцию.Я рассчитал кватернион вращения, используя эту формулу: формула изображения и в моем коде это выглядит так:
Quat qx = new Quat(Mathf.Cos(inputX / 2), 0, 0, Mathf.Sin(inputX / 2));
//0,1,0
Quat qy = new Quat(Mathf.Cos(inputY / 2), 0, Mathf.Sin(inputY / 2), 0);
//1,0,0
Quat qz = new Quat(Mathf.Cos(inputZ / 2), Mathf.Sin(inputZ / 2), 0, 0);
q = Multiply(qx, q);
q = Multiply(qy, q);
q = Multiply(qz, q);
Функция умножения выглядит следующим образом:
q.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;
q.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;
q.y = q1w * q2y + q1y * q2w - q1x * q2z + q1z * q2x;
q.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;