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 (将#修改为@)