첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

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>
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요