c# - Helix Toolkit - 旋转 Model3DGroup 其中心
问题描述
这是我的代码。我想通过它的中心旋转卫星,但它通过(0,0,0)旋转。我找不到它的中心。我能做些什么? 卫星 我从串行端口获取滚动、偏航和俯仰数据,然后旋转卫星。
//Salih Gumusbuga Copyright © 11 Jan 2021
命名空间 WPF_3D_gettingStarted { 公共部分类 MainWindow :窗口 { Model3DGroup 卫星;BoxVisual3D 我的盒子;
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), 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, 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, 0);
m_helix_viewport.DefaultCamera.LookDirection = new Vector3D(-400, 0, 0);
m_helix_viewport.DefaultCamera.UpDirection = new Vector3D(0, 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();
}
}
}
解决方案
推荐阅读
- javascript - 在 Javascript 上使用 Keypress 触发空间按钮
- python - 有没有更好的方法来遍历多维元组/列表?
- vue.js - 我们如何在 NUXTJS 中设置默认路由
- flutter - 颤振如何在半框上显示图标
- python - 插入函数和程序执行失败
- mysql - 验证表中列的值不等于其他表中两列的值之和
- angular - RxJS switchMap 操作符不取消http请求
- c# - 将十进制格式化为长度为 9 的字符串,在 '.' 之前有 2 位数字(0 填充)和 6 之后
- git - 开发/主控的 git push 失败
- java - 等待任何完成的可调用返回值,只要它在可调用列表中完成