Как вы поворачиваете 3D-модель, используя HelixToolkit? - PullRequest
0 голосов
/ 26 февраля 2019

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

Ответы [ 2 ]

0 голосов
/ 25 марта 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
0 голосов
/ 27 февраля 2019

WPF 3D-вращение

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

...