在上一篇的文章里我们知道如何构造一个简单的三维场景,这次的课程我将和大家一起来研究如何用代码,完成对建立好了的三维场景的观察。
首先看一下DEMO的界面:
可以看到8个方向的按钮,它们将提供观察角度的变化和三维场景的旋转这样的功能。
观察位置变化:
实现原理:改变场景内照相机的绝对位置等属性
实现代码:
定义照相机
<
Viewport3D
Name
="myViewport"
Margin
="0,0,0,0"
>
< Viewport3D .Camera >
< PerspectiveCamera x:Name ="myViewportCamera" FarPlaneDistance ="5000" NearPlaneDistance ="0.25" FieldOfView ="90" Position ="1800,0,0" LookDirection ="-1,0,0" UpDirection ="0,1,0" ></ PerspectiveCamera >
</ Viewport3D.Camera >
< Viewport3D .Camera >
< PerspectiveCamera x:Name ="myViewportCamera" FarPlaneDistance ="5000" NearPlaneDistance ="0.25" FieldOfView ="90" Position ="1800,0,0" LookDirection ="-1,0,0" UpDirection ="0,1,0" ></ PerspectiveCamera >
</ Viewport3D.Camera >
定义照相机(观察角度)的变化事件:
void
rightButton_Click(
object
sender, RoutedEventArgs e)
... {
this.myViewportCamera.Position = new System.Windows.Media.Media3D.Point3D(this.myViewportCamera.Position.X, this.myViewportCamera.Position.Y ,
... {
this.myViewportCamera.Position = new System.Windows.Media.Media3D.Point3D(this.myViewportCamera.Position.X, this.myViewportCamera.Position.Y ,