Как повернуть 3D-модель с помощью HelixToolkit?

Мне нужна помощь в повороте 3D-модели в проекте WPF в визуальных студиях. Я импортировал модель с помощью набора инструментов Helix. Но я не могу найти ни одного примера того, как повернуть 3D-модель онлайн. Я нашел несколько примеров C# и xaml, но в основном они вращают камеру, а не модель.


person Arash    schedule 26.02.2019    source источник


Ответы (2)


Вращение 3D-объектов WPF

Создайте RotateTransform3D для вашего GeometryModel3D.Transform

person Lance H    schedule 27.02.2019
comment
Будет ли это работать, даже если я импортирую модель с помощью набора инструментов 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