У меня есть этот фрагмент кода, который поворачивает мою модель вправо.
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));
Когда я добавляю следующий код, я получаю
axis = new Vector3D(0, 0, 1);
transformationMatrix = model.Content.Transform.Value;
transformationMatrix.RotateAt(new Quaternion(axis, 90), centre);
myTransform3DGroup.Children.Add(new MatrixTransform3D(transformationMatrix));
Как вы можете видеть, он не вращался вокруг оси z, как хотелось бы. Я очень новичок в HelixToolkit, но мне нужно повернуть лицо лицом к лицу вперед, тогда я планирую написать функцию, которая позволит мне задать 3 угла, которые позволят мне поворачивать лицо вдоль xy и z-ось.
Я исключил часть своего кода. Если вам все это нужно, дайте мне знать, и я смогу опубликовать.
Есть идеи о том, как повернуть его вдоль оси?