■ AxisAngleRotation3D 엘리먼트 : 정육면체(Cube) 움직이기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainWindow.xaml

 

 

<Window x:Class="TestProject.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="800"

    Height="600"

    Title="AxisAngleRotation3D 엘리먼트 : 정육면체(Cube) 움직이기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Viewport3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <GeometryModel3D>

                    <GeometryModel3D.Geometry>

                        <MeshGeometry3D

                            Positions="-0.5  0.5  0.5,  0.5  0.5  0.5,

                                       -0.5 -0.5  0.5,  0.5 -0.5  0.5,

                                        0.5  0.5 -0.5, -0.5  0.5 -0.5,

                                        0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                       -0.5  0.5 -0.5, -0.5  0.5  0.5,

                                       -0.5 -0.5 -0.5, -0.5 -0.5  0.5,

                                        0.5  0.5  0.5,  0.5  0.5 -0.5,

                                        0.5 -0.5  0.5,  0.5 -0.5 -0.5,

                                       -0.5  0.5 -0.5,  0.5  0.5 -0.5,

                                       -0.5  0.5  0.5,  0.5  0.5  0.5,

                                        0.5 -0.5 -0.5, -0.5 -0.5 -0.5,

                                        0.5 -0.5  0.5, -0.5 -0.5  0.5"

                            TriangleIndices=" 0  2  1,  1  2  3

                                              4  6  5,  5  6  7,

                                              8 10  9,  9 10 11,

                                             12 14 13, 13 14 15

                                             16 18 17, 17 18 19

                                             20 22 21, 21 22 23" />

                    </GeometryModel3D.Geometry>

                    <GeometryModel3D.Material>

                        <DiffuseMaterial Brush="RoyalBlue" />

                    </GeometryModel3D.Material>

                    <GeometryModel3D.Transform>

                        <Transform3DGroup>

                            <RotateTransform3D>

                                <RotateTransform3D.Rotation>

                                    <AxisAngleRotation3D x:Name="xAxisAngleRotation3D"

                                        Axis="1 0 0" />

                                </RotateTransform3D.Rotation>

                            </RotateTransform3D>

                            <RotateTransform3D>

                                <RotateTransform3D.Rotation>

                                    <AxisAngleRotation3D x:Name="yAxisAngleRotation3D"

                                        Axis="0 1 0" />

                                </RotateTransform3D.Rotation>

                            </RotateTransform3D>

                            <RotateTransform3D>

                                <RotateTransform3D.Rotation>

                                    <AxisAngleRotation3D x:Name="zAxisAngleRotation3D"

                                        Axis="0 0 1" />

                                </RotateTransform3D.Rotation>

                            </RotateTransform3D>

                        </Transform3DGroup>

                    </GeometryModel3D.Transform>

                </GeometryModel3D>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <Model3DGroup>

                    <AmbientLight Color="#404040" />

                    <DirectionalLight

                        Color="#c0c0c0"

                        Direction="2 -3 -1" />

                </Model3DGroup>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <Viewport3D.Camera>

            <PerspectiveCamera

                Position="0 0 4"

                LookDirection="0 0 -4"

                UpDirection="0 1 0"

                FieldOfView="45" />

        </Viewport3D.Camera>

    </Viewport3D>

    <Window.Triggers>

        <EventTrigger RoutedEvent="Window.Loaded">

            <BeginStoryboard>

                <Storyboard TargetProperty="Angle">

                    <DoubleAnimation Storyboard.TargetName="xAxisAngleRotation3D"

                        From="0"

                        To="360"

                        Duration="0:0:3"

                        RepeatBehavior="Forever" />

                    <DoubleAnimation Storyboard.TargetName="yAxisAngleRotation3D"

                        From="0"

                        To="360"

                        Duration="0:0:30"

                        RepeatBehavior="Forever" />

                    <DoubleAnimation Storyboard.TargetName="zAxisAngleRotation3D"

                        From="0"

                        To="360"

                        Duration="0:0:3"

                        RepeatBehavior="Forever" />

                </Storyboard>

            </BeginStoryboard>

        </EventTrigger>

    </Window.Triggers>

</Window>

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker