WPF绕立方体旋转

时间:2019-02-21 11:42:53

标签: wpf rotation viewport3d

我下面有绘制立方体的代码。我添加了两个鼠标事件。我想要在单击鼠标右键并在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>

基本上,我需要相对于鼠标移动围绕对象旋转。

0 个答案:

没有答案