Мне нужна помощь в повороте 3D-модели в проекте WPF в визуальных студиях. Я импортировал модель с помощью набора инструментов Helix. Но я не могу найти ни одного примера того, как повернуть 3D-модель онлайн. Я нашел несколько примеров C# и xaml, но в основном они вращают камеру, а не модель.
Как повернуть 3D-модель с помощью HelixToolkit?
Ответы (2)
Создайте RotateTransform3D для вашего GeometryModel3D.Transform
person
Lance H
schedule
27.02.2019
Будет ли это работать, даже если я импортирую модель с помощью набора инструментов Helix.
- person Arash; 27.02.2019
Я нашел особенно полезным использовать матрицы для выполнения преобразований.
В моем случае я заметил, что обычно, если вы применяете преобразование, такое как RotateTransform3D, а затем применяете другое преобразование, используя свойство вашей модели «.transform», оно переопределяет последнее преобразование. В большинстве случаев вы хотите, чтобы новое преобразование применялось поверх предыдущего.
Вот как я делаю свои вращения:
Vector3D axis = new Vector3D (1,0,0) //In case you want to rotate it about the x-axis
Matrix3D transformationMatrix = model.Content.Transform.Value; //Gets the matrix indicating the current transformation value
transformationMatrix.Rotate(new Quaternion(axis, angle)) //Makes a rotation transformation over this matrix
model.Content.Transform = new MatrixTransform3D(transformationMatrix); //Applies the transformation to your model
Не забывайте, если вы хотите, чтобы модель вращалась вокруг собственного центра, вместо '.Rotate' используйте '.RotateAt', например:
transformationMatrix.RotateAt(new Quaternion(axis, angle), modelCenter); //modelCenter is the Point3D variable indicating the center
person
Hassnain Ali
schedule
25.03.2019