У меня есть код ниже, который рисует куб.Я добавил два события мыши.Я хочу, чтобы при нажатии правой кнопки мыши и перемещении мыши, чтобы вращаться вокруг куба на 360 градусов.
<Viewport3D MouseMove="Viewport3D_MouseMove" MouseRightButtonDown="Viewport3D_MouseRightButtonDown">
<Viewport3D.Camera>
<PerspectiveCamera Position = "5 4 3" LookDirection = "-5 -4 -3">
</PerspectiveCamera>
</Viewport3D.Camera>
<ModelVisual3D>
<ModelVisual3D.Content>
<AmbientLight />
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D x:Name="MyModel">
<ModelVisual3D.Content>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1"
TriangleIndices="1 2 0 1 3 2 3 7 2 7 6 2 2 6 4 2 4 0 7 4 6 7 5 4 5 7 3 3 1 5 4 5 0 5 1 0"/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial x:Name = "matDiffuseMain">
<DiffuseMaterial.Brush>
<SolidColorBrush Color = "Yellow"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
У меня был код GeometryModel3D.Transform, но я не уверен, что это правильный путь или какой код должен быть в классе C # в событиях
<GeometryModel3D.Transform>
<Transform3DGroup>
<RotateTransform3D x:Name="Rotation">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D x:Name="myVerticalRotation" Angle="0" Axis="0.5 0.5 0.5" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Transform3DGroup>
</GeometryModel3D.Transform>
По сути, янеобходимо вращение вокруг объекта относительно движения мыши.