首页 > 解决方案 > 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();

    }


}

}

标签: c#wpfwindowshelix-3d-toolkit

解决方案


推荐阅读