■ MeshGeometry3D 클래스 : 구체 애니메이션 만들기

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


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"

    xmlns:local="clr-namespace:TestProject"

    Width="800"

    Height="600"

    Title="MeshGeometry3D 클래스 : 구체 애니메이션 만들기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Viewport3D>

        <local:Sphere x:Name="sphere">

            <local:Sphere.Material>

                <DiffuseMaterial Brush="RoyalBlue" />

            </local:Sphere.Material>

            <local:Sphere.BackMaterial>

                <DiffuseMaterial>

                    <DiffuseMaterial.Brush>

                        <SolidColorBrush x:Name="backSolidColorBrush" />

                    </DiffuseMaterial.Brush>

                </DiffuseMaterial>

            </local:Sphere.BackMaterial>

            <local:Sphere.Transform>

                <RotateTransform3D>

                    <RotateTransform3D.Rotation>

                        <AxisAngleRotation3D x:Name="rotateTransform3D"

                            Axis="0 0 1" />

                    </RotateTransform3D.Rotation>

                </RotateTransform3D>

            </local:Sphere.Transform>

        </local:Sphere>

        <ModelVisual3D>

            <ModelVisual3D.Content>

                <Model3DGroup>

                    <AmbientLight Color="#404040" />

                    <DirectionalLight

                        Color="#c0c0c0"

                        Direction="2, -3 -1" />

                </Model3DGroup>

            </ModelVisual3D.Content>

        </ModelVisual3D>

        <Viewport3D.Camera>

            <PerspectiveCamera

                Position="0 0 5"

                LookDirection="0 0 -1"

                UpDirection="0 1 0"

                FieldOfView="45" />

        </Viewport3D.Camera>

    </Viewport3D>

    <Window.Triggers>

        <EventTrigger RoutedEvent="Window.Loaded">

            <BeginStoryboard>

                <Storyboard RepeatBehavior="Forever">

                    <DoubleAnimation

                        Storyboard.TargetName="sphere"

                        Storyboard.TargetProperty="LongitudeFrom"

                        From="0.001"

                        To="60"

                        Duration="0:0:3"

                        AutoReverse="True"

                        RepeatBehavior="2x" />

                    <DoubleAnimation

                        Storyboard.TargetName="sphere"

                        Storyboard.TargetProperty="LongitudeTo"

                        From="-0.001"

                        To="-60"

                        Duration="0:0:3"

                        AutoReverse="True"

                        RepeatBehavior="2x" />

                    <DoubleAnimationUsingKeyFrames

                        Storyboard.TargetName="rotateTransform3D"

                        Storyboard.TargetProperty="Angle">

                        <DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="0" />

                        <DiscreteDoubleKeyFrame KeyTime="0:0:6" Value="90" />

                    </DoubleAnimationUsingKeyFrames>

                    <ColorAnimationUsingKeyFrames

                        Storyboard.TargetName="backSolidColorBrush"

                        Storyboard.TargetProperty="Color">

                        <DiscreteColorKeyFrame KeyTime="0:0:0" Value="Green" />

                        <DiscreteColorKeyFrame KeyTime="0:0:6" Value="Gray" />

                    </ColorAnimationUsingKeyFrames>

                </Storyboard>

            </BeginStoryboard>

        </EventTrigger>

    </Window.Triggers>

</Window>

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요