2017-03-27 23 views
0

こんにちは、私は、3Dモデルを表示するプロジェクトに取り組んでいると私は、私は、XAMLのここでのコードの持つらせん3Dツールキットを使用します。らせんWPFで自動的に3Dモデルを回転させる方法

<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#のコードを:

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度回転させたいのですが、私は何をすべきか分かりません。

+0

[これ](http://stackoverflow.com/questions/36437858/helix-toolkit-rotate-3dを使用することができ-model)はあなたを助けなければなりません。ボタンをクリックしてもタイマーの回転を自動化することはできません。 [this](http://stackoverflow.com/questions/28940267/rotate-an-object-in-helixviewport3d-in-a-wpf-app)をチェックしてください。 – Shakra

答えて

0

ユーザーが特定の軸にモデルを回転させることができるRotateManipulator制御

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; 
     } 
関連する問題