Модель не вращается вокруг правильной оси - PullRequest
2 голосов
/ 01 ноября 2019

У меня есть этот фрагмент кода, который поворачивает мою модель вправо.

        Point3D centre = GetCenter(model);
        Vector3D axis = new Vector3D(0, 1, 0); 
        Matrix3D transformationMatrix = model.Content.Transform.Value; 
        transformationMatrix.RotateAt(new Quaternion(axis, 90), centre); 
        myTransform3DGroup.Children.Add(new MatrixTransform3D(transformationMatrix)); 

        axis = new Vector3D(1, 0, 0); 
        transformationMatrix = model.Content.Transform.Value; 
        transformationMatrix.RotateAt(new Quaternion(axis, 150), centre); 
        myTransform3DGroup.Children.Add(new MatrixTransform3D(transformationMatrix));

enter image description here

Когда я добавляю следующий код, я получаю

        axis = new Vector3D(0, 0, 1);
        transformationMatrix = model.Content.Transform.Value; 
        transformationMatrix.RotateAt(new Quaternion(axis, 90), centre); 
        myTransform3DGroup.Children.Add(new MatrixTransform3D(transformationMatrix));

enter image description here

Как вы можете видеть, он не вращался вокруг оси z, как хотелось бы. Я очень новичок в HelixToolkit, но мне нужно повернуть лицо лицом к лицу вперед, тогда я планирую написать функцию, которая позволит мне задать 3 угла, которые позволят мне поворачивать лицо вдоль xy и z-ось.

Я исключил часть своего кода. Если вам все это нужно, дайте мне знать, и я смогу опубликовать.

Есть идеи о том, как повернуть его вдоль оси?

...