첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 정육면체 애니메이션 만들기

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

 

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"

    Title="정육면체 애니메이션 만들기"

    Width="800"

    Height="600">

    <Viewport3D>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <Model3DGroup>

                    <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="Blue" />

                        </GeometryModel3D.Material>

                    </GeometryModel3D>

                    <AmbientLight Color="#404040" />

                    <DirectionalLight

                        Color="#c0c0c0"

                        Direction="2 -3 -1" />

                </Model3DGroup>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <Viewport3D.Camera>

            <PerspectiveCamera x:Name="perspectiveCamera" />

        </Viewport3D.Camera>

    </Viewport3D>

    <Window.Triggers>

        <EventTrigger RoutedEvent="Window.Loaded">

            <BeginStoryboard>

                <Storyboard TargetName="perspectiveCamera">

                    <Point3DAnimation

                        Storyboard.TargetProperty="Position"

                        From="-10 1 6"

                        To="10 1 6"

                        Duration="0:0:2"

                        AutoReverse="True"

                        RepeatBehavior="Forever" />

                    <Vector3DAnimation

                        Storyboard.TargetProperty="LookDirection"

                        From="10 -1 -6"

                        To="-10 -1 -6"

                        Duration="0:0:2"

                        AutoReverse="True"

                        RepeatBehavior="Forever" />

                    <DoubleAnimationUsingKeyFrames

                        Storyboard.TargetProperty="FieldOfView"

                        AutoReverse="True"

                        RepeatBehavior="Forever">

                        <LinearDoubleKeyFrame KeyTime="0:0:0" Value="20" />

                        <LinearDoubleKeyFrame KeyTime="0:0:1" Value="45" />

                        <LinearDoubleKeyFrame KeyTime="0:0:2" Value="20" />

                    </DoubleAnimationUsingKeyFrames>

                </Storyboard>

            </BeginStoryboard>

        </EventTrigger>

    </Window.Triggers>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요