17.6 动画和交互
动画和交互在3D编程中是一个高级主题,在这一节中我们将通过
实现一个简单的3D地球程序(EarthDemo)来学习这个主题。
17.6.1 动画
让一个3D模型动起来的两种途径为让照相机和3D模型动。
让照相机动实际上是改变照相机的Position、LookDirection或者
UpDirection等属性,这些属性都是依赖属性,因此动画可以应用到其
上;而让3D模型动也有两种方法,常见的是对WPF3D变换类进行动
画。WPF3D和2D图形一样,也提供了平移、旋转和缩放等变换类,只
不过这些变换类是在3D环境下应用的。通过对这些变换类的参数应用
动画,从而使3D图形动起来;另一种方法是直接改变3D模型坐标点集
合的值,即改变MeshGeometry3D的Positions属性,它是一个Point3D的
集合(Point3DCollection)。这种对集合的操作本身比较烦琐,也需要
一定的技巧。如果一不小心,可能会导致3D模型不动或者效率低下。
1.照相机动
我们的目标实现类似Google Earth的效果,让地球自转着从太空中
由远及近地出现在视野中。为实现地球由远及近,可以改变照相机的
Position属性,如代码17-36所示。
<Window.Triggers>