1. 打開Window1.xaml文件,找到Viewport3D中的VIEwport3D.Camera 標簽,它包括了一個PerspectiveCamera,即透視攝像機。它的UpDirection 目前是0,1,0,把它改為0.2,1,0,然後按F5運行程序,看看效果的變化。
2. 改變攝像機的Position為0.25,0,2.2339, 然後運行程序,觀察攝像機位置發生的變化。
3. 改變Position為3,0,2.2339,同時也改變LookDirection為-3,0,-2.2,然後再運行程序觀察變化。
4. 好,現在請隨便嘗試幾個數據組合,請注意如果嘗試過大的數據,很容易使攝像機跑到一個較遠的地方,因此會什麼都看不到。
5. 當你完成實驗後,用一下代碼使其回到初始的默認位置,以進行後面的任務。
<PerspectiveCamera x:Name="FrontOR9" FarPlaneDistance="10" LookDirection="0,0,-1"
UpDirection="0,1,0" NearPlaneDistance="1" Position="0,0,2.29339"
FieldOfVIEw="39.5978" />
任務3 給模型添加動畫。
1.打開Window1.xaml文件,找到Viewport3D中的VIEwport3D.Camera 標簽,在此標簽後,添加下面的代碼:
<VIEwport3D.Triggers>
<EventTrigger RoutedEvent="VIEwport3D.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<Rotation3DAnimation Storyboard.TargetName="WpfLogoOR12"
Storyboard.TargetProperty="(Model3DGroup.Transform).(Transform3DGroup.Children)[2].(RotateTransform3D.Rotation)"
Duration="0:0:5" AutoReverse="True"
RepeatBehavior="Forever" AccelerationRatio="0.4" DecelerationRatio="0.4">
<Rotation3DAnimation.From>
<AxisAngleRotation3D Axis="2,10,3" Angle="-45" />
</Rotation3DAnimation.From>
<Rotation3DAnimation.To>
<AxisAngleRotation3D Axis="2,10,3" Angle="45" />
</Rotation3DAnimation.To>
</Rotation3DAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</VIEwport3D.Triggers>這 段代碼使用了Rotation3DAnimation標簽給模型添加動畫,Storyboard.TargetName和 Storyboard.TargetProperty屬性指示了模型發生動畫的具體部分。(WpfLogoOR12是模型中的一個標簽,代表logo模型 整體)
2.運行程序,logo模型會自動的發生反復旋轉。
任務4 可交互的旋轉模型。
在本練習的最後一個任務中,我們將允許使用鼠標旋轉模型。你會用到 3D Tools for the Windows Presentation Foundation, 這是一套可以輔助我們在WPF中使用XAML制作3D應用的工具,可以從http://www.codeplex.com/3DTools上下載。當然,我們現在已經不必去下載了,我們要用到的3DTools.dll 庫文件在實例的Source\Exercise1文件夾下。
1.給項目中添加3DTools.dll庫文件。(在Project面板中,右擊References, 選Add Reference…, 然後找到3DTools.dll文件)
2.打開Window1.xaml文件,添加一個XML 命名空間聲明,以在這個XAML文件中使用3D tools:
<Window x:Class="Show3DModel.Window1"
XMLns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
XMLns:x="http://schemas.microsoft.com/winfx/2006/xaml"
XMLns:tools="clr-namespace:_3DTools;assembly=3DTools"
Title="Show3DModel" Height="300" Width="300"
>
3. 添加<tools:TrackballDecorator>標簽,使<Viewport3D>< /VIEwport3D>標簽整體包含在添入的標簽<tools:TrackballDecorator>... </tools:TrackballDecorator>中。
TrackballDecorator允許使用鼠標左鍵拖動旋轉包含的模型,使用鼠標右鍵縮小放大。
4.編譯運行程序,現在就實現與模型的旋轉、縮小放大交互了。
本練習完