首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在螺旋线WPF中自动旋转三维模型

如何在螺旋线WPF中自动旋转三维模型
EN

Stack Overflow用户
提问于 2017-03-27 13:39:54
回答 1查看 1K关注 0票数 0

你好,我正在从事显示3D模型的项目,我使用了helix 3D工具包,所以这里有xaml代码:

代码语言:javascript
复制
 <h:HelixViewport3D Name="hlx" ZoomExtentsWhenLoaded="True" RotateAroundMouseDownPoint="False"  ShowViewCube="False"  Opacity="0.8"  Grid.Column="4" Grid.ColumnSpan="2" Grid.Row="4" Grid.RowSpan="3">
        <h:DefaultLights/>

    </h:HelixViewport3D>

这里的C#代码是:

代码语言:javascript
复制
   void C()
    {
        ModelVisual3D model = new ModelVisual3D();

        model.Content = Display3d(@"D:\tests for projects\Em organic compounds\Em organic compounds\Car.3DS");

        hlx.Children.Add(model);

    }
    private Model3D Display3d(string mdl)
    {
        Model3D device = null;
        try
        {

            hlx.RotateGesture = new MouseGesture(MouseAction.LeftClick);


            ModelImporter import = new ModelImporter();


            device = import.Load(mdl);
        }
        catch (Exception e)
        {
            MessageBox.Show("Exception Error : " + e.StackTrace);
        }
        return device;
    }

工作得很好。问题是,我想把3D模型旋转360度,就像一个汽车展厅,但我不知道该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 22:32:16

您可以使用RotateManipulator控件,它允许用户在特定轴上旋转模型。

代码语言:javascript
复制
void C()
        {
            ModelVisual3D model = new ModelVisual3D();

            model.Content = Display3d(@"D:\tests for projects\Em organic compounds\Em organic compounds\Car.3DS");

            RotateManipulator manipulator = new RotateManipulator()
            {
                //rotate on X axis
                Axis = new Vector3D(1, 0, 0),
                Diameter = 5 //
            };
            Binding b = new Binding()
            {
                ElementName = nameof(model),
                Path = new PropertyPath("Transform")
            };
            BindingOperations.SetBinding(manipulator, RotateManipulator.TransformProperty, b);
            BindingOperations.SetBinding(manipulator, RotateManipulator.TargetTransformProperty, b);

            view1.Children.Add(manipulator);

            view1.Children.Add(model);

        }
        private Model3D Display3d(string mdl)
        {
            Model3D device = null;
            try
            {

                // view1.RotateGesture = new MouseGesture(MouseAction.LeftClick);
                ModelImporter import = new ModelImporter();


                device = import.Load(mdl);
            }
            catch (Exception e)
            {
                MessageBox.Show("Exception Error : " + e.StackTrace);
            }
            return device;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43048064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档