使用相机工具条,可以进行很多视图交互操作。在图形窗口中显示三维图形以后,在图形窗口的“View”菜单中选择“Camera Toolbar”选项,可显示相机工具条,如图5-4中红框内所示。[大谦MATLAB,dqmatlab点com]
图5-4 在图形窗口中显示相机工具条
工具条显示出来以后,选择相应的命令按钮,然后在图形场景上按下鼠标以后进行拖拉,场景会进行相应的变换。
相机工具条
如图5-5所示,工具条包括下面几部分内容:
相机移动控制 主轴选择器 场景光照 投影类型 重设和停止
图5-5 相机工具条
相机移动控制工具按钮 用于对场景进行平移、旋转和缩放等操作。也可以从“Tools”菜单中获取相应的选项。
主轴选择器 用于选择向上的坐标系主轴。
场景光照开关 控制场景中光照的打开和关闭。
投影类型按钮 选择正交投影或透视投影。
重设按钮 将场景重设为变换前的状态。
停止按钮 停止动画等。
选择主轴
在相机工具条中的相机移动控制按钮中单击跟旋转相机有关的按钮时,主轴选择器中的按钮变为可用。此时可以选择坐标主轴,即x轴、y轴或者z轴作为旋转轴。
被选为坐标主轴的坐标轴指向上方,如图标中所示。默认时,MATLAB曲面图将z轴正向指定为向上的方向。
盘旋
创建图形时,MATLAB用一个各坐标轴方向上的显示比率显示图形,使它刚好装满图形窗口。对于三维图形操作,这可能不会生成最优的结果,因为在场景周围移动相机时可能会导致图形变形。为了避免可能的变形,最好转换为三维可视化模式(在命令行中使用axis vis3d命令)。使用相机工具条时,MATLAB会自动转换到三维可视化模式,但是会首先给出图5-6所示的警告对话框。这个对话框只显示一次。
图5-6 警告对话框 图5-7 相机盘旋
默认时,盘旋相机操作会使相机绕z轴旋转。可以用主轴选择器选择绕x,y,z或自由坐标轴旋转。没有使用主轴时,可以绕任意坐标轴旋转。
盘旋相机操作会在保持CameraTarget属性值固定的同时改变CameraPosition属性的值。相机盘旋操作的示意如图5-7所示。注意,相机始终对准目标点。
与盘旋有关的还有场景光的盘旋。场景光是一个光源,默认时,它放在相机右侧。盘旋场景光会改变光与相机位置之间的偏移量,并相应地改变场景的光照效果。只有一个场景光,可以用light命令添加其他的光。
在相机工具条中使用
和
按钮,可以实现相机盘旋和场景光盘旋。对图5-6中的图形进行这两个操作以后,得图5-8和图5-9。
图5-8 相机盘旋效果 图5-9 场景光盘旋效果
在工具条中单击
按钮,可以关闭场景光。盘旋场景光是通过改变light对象的Position属性来移动场景光的。
平移
场景的平移变换可以用两种方法实现。一种是对场景本身进行平移,另一种是平移相机。前一种好理解。后一种就好比我们坐在汽车上看窗外的世界,窗外的花花草草并没有移动,但我们感觉它们在移动。MATLAB对这两种平移方法都支持。
(1) 平移目标点
此时相机是固定的,而相机对准的场景中的目标点是移动的,如图5-10所示。默认时,这个点绕z轴盘旋。可以用主轴选择器选择x,y,z或自由轴旋转。
图5-10 平移目标点 图5-11 平移相机
移动场景中的点是通过改变CameraTarget属性实现的。单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以平移场景。
(2) 平移相机
水平或垂直移动相机也能实现场景的移动,如图5-11中所示。单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以实现场景的平移。图5-6中场景平移的效果如图5-12所示。
图5-12 场景平移
缩放
场景缩小和放大也可以通过两种方法来实现。一种是前后移动相机,另一种是改变相机的视角。
前后移动相机
将光标向上或向右移动可以使相机向场景方向移动。将光标向下或向左移动可以使相机背离场景方向移动。使相机移动时穿过场景中的对象到达另一端也是可以的。
对应的图形属性会沿相机位置和相机目标位置的连线移动相机,如图5-13中所示。
相机视角相机视角

图5-13 前后移动相机 图5-14 调整相机视角
单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以缩放场景。
调整相机视角
缩放操作可以通过改变CameraViewAngle属性,即通过调整相机视角来实现。属性值越大,场景看起来越小;反之场景看起来越大。调整相机视角缩放场景的原理如图5-14所示。
在场景上按下鼠标以后,向上或向右拖拉会放大场景,向下或向左拖拉会缩小场景。缩放操作不会移动相机,所以不能使视点穿过场景中的对象。
单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以缩放场景。图5-6中场景缩放的效果如图5-15所示。
图5-15 缩小场景
滚动
相机滚动操作使相机绕坐标轴旋转,从而旋转屏幕上的视图,如图5-16所示。该操作会改变CameraUpVector属性。
单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以滚动场景。图5-6中场景滚动后的效果如图5-17所示。
图5-16 相机滚动 图5-17 滚动视图效果
漫游
如图5-18所示,相机漫游会在相机目标点方向上移动相机,并且将相机目标点移动相同的量。该操作还会左右摇动相机。使用相机漫游,可以在整个场景中移动相机,穿过视轴上的所有对象。

图2-57 漫游图示图2-57 漫游图示相机漫游在某种程度上与开车时目光始终注视前方相似。向右转时,场景中看到的对象出现在左侧。当视轴位于垂直主轴的平面上时,相机漫游的使用效果最好。例如,如果z轴是主轴,则应该将相机放在与相机目标点相同的高度上。此时趋近和远离的移动都会保持在相同的z值上。使用相机漫游以前将图形缩小效果会比较好一些。
相机漫游操作对CameraPosition和CameraTarget属性都会有所修改,以保持它们之间的距离不变。
单击相机工具条中的
按钮,然后在场景中单击并拖拉鼠标,可以实现场景漫游。