Поворот 3D-преобразований в wpf
Всем Привет
Недавно я начал разработку WPF/C# 3D. Я пытаюсь повернуть прямоугольник. Но проблема в том, что когда я вращаю его, другие оси также вращаются.
Например, если я поверну его вдоль оси x на 90, оси y и z также будут повернуты. то есть ось y направлена к отрицательной оси z, а ось z-к оси Y. Теперь, если я хочу повернуть его вокруг оси y, я должен повернуть его на самом деле вокруг оси z, только тогда он будет вращаться вокруг y в пользовательском интерфейсе.
Я предполагаю, что мне нужно следить за каждой осью, если я ничего не упускаю. Кто-нибудь может мне помочь ?
Я изучал кватернионы, но даже тогда мне приходилось следить за осями.
это код, который я использую
public void RotateXAxis(RotateDirection rotaryDirection) { AxisAngleRotation3D axisAngleRotation = new AxisAngleRotation3D(new Vector3D(1,0,0), 90 * x * (int)rotaryDirection); RotateTransform3D rotation = new RotateTransform3D(axisAngleRotation, new Point3D(7.5, 7.5, 7.5)); this.modelVisual3D.Transform = rotation; } /// <summary> /// Rotates the slice arount Y-Axis /// </summary> /// <param name="rotaryDirection"></param> public void RotateYAxis(RotateDirection rotaryDirection) { AxisAngleRotation3D axisAngleRotation = new AxisAngleRotation3D(new Vector3D(0, 1, 0), -90 * y * (int)rotaryDirection); RotateTransform3D rotation = new RotateTransform3D(axisAngleRotation, new Point3D(7.5, 7.5, 7.5)); this.modelVisual3D.Transform = rotation; }
С уважением,
Заин-уль-abideen