如何解决Helix Toolkit - 旋转 Model3D 将其中心分组
这是我的代码。我想通过其中心旋转卫星,但它通过(0,0)旋转。我找不到它的中心。我能做什么? satellite 我从串口获取滚转、偏航和俯仰数据,然后旋转卫星。
//Salih Gumusbuga copyright © 11 Jan 2021
命名空间 WPF_3D_gettingStarted { 公共部分类 MainWindow : 窗口 { Model3DGroup 卫星; BoxVisual3D myBox;
Model3D part;
Form1 form1 = new Form1();
public Model3D our_Model { get; set; }
public Model3DGroup dondur(Model3DGroup uydu,double angle)
{
RotateTransform3D myRotateTransform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(1,0),0));
myRotateTransform.CenterX = 0;
myRotateTransform.CenterY = 0;
myRotateTransform.CenterZ = 20;
uydu.Transform = myRotateTransform;
return uydu;
}
private void dispatcherTimer_Tick(object sender,EventArgs e)
{
satellite=dondur(satellite,form1.angle);
}
public MainWindow()
{
InitializeComponent();
dispatcherTimer dispatcherTimer = new System.Windows.Threading.dispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,1);
dispatcherTimer.Start();
Loaded += MainWindow_Loaded;
ModelImporter importer = new ModelImporter();
Material material = new DiffuseMaterial(new SolidColorBrush(Colors.Beige));
importer.DefaultMaterial = material;
satellite = new Model3DGroup();
m_helix_viewport.DefaultCamera = new PerspectiveCamera();
m_helix_viewport.DefaultCamera.Position = new Point3D(400,0);
m_helix_viewport.DefaultCamera.LookDirection = new Vector3D(-400,0);
m_helix_viewport.DefaultCamera.UpDirection = new Vector3D(0,1);
part = importer.Load(@"uydu/uydu.obj");
satellite.Children.Add(part);
this.our_Model = satellite;
myBox = new BoxVisual3D();
myBox.Height = 5;
myBox.Width = 5;
myBox.Length = 5;
m_helix_viewport.Children.Add(myBox);
overall_grid.DataContext = this;
}
private void MainWindow_Loaded(object sender,RoutedEventArgs e)
{
form1.Show();
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。