■ MeshGeometry3D 클래스를 사용해 구체 애니메이션을 만드는 방법을 보여준다.
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
<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> |