使用相机工具栏控制视图
相机工具栏
相机工具栏允许您以交互方式执行多种观察操作。要使用相机工具栏,请执行以下操作:
显示工具栏,方法是:从图窗窗口的视图菜单中选择相机工具栏,或者在命令行窗口中键入
cameratoolbar
。选择要使用的相机移动控制类型,方法是:点击相应的按钮,或者在命令行窗口更改
cameratoolbar
模式。将光标置于图窗窗口上并点击,按住鼠标右键,然后将光标移动到所需的方向。
显示屏将随着鼠标移动即时更新。
工具栏包含以下几部分:
相机移动控制 - 这些工具用于选择要启用的相机移动功能。您也可以从工具菜单中访问相机移动控制。
主轴选择器 - 某些相机控制的工作方式基于特定的坐标轴。这些选择器允许您选择主轴或选择不受坐标轴限制的移动。如果不适用于当前选定的功能,选择器将灰显。您还可以从工具菜单中访问主轴选择器。
场景灯光 - 场景灯光按钮用于打开或关闭场景中的光源(每个坐标区一个光源)。
投影类型 - 您可以选择正交投影或透视投影类型。
重置和停止 - 重置可将场景恢复为交互开始时的视图。“停止”将使相机停止移动(如果您应用了太多的光标移动,这会很有用)。您还可以从工具菜单中访问更多重置功能。
主轴
场景的主轴定义屏幕上向上的方向。例如,MATLAB® 曲面图的向上方向与 z 轴的正方向一致。
主轴将相机工具移动限制在与您选择的主轴平行(在屏幕上)和垂直的坐标轴上。如果您的数据是针对特定坐标轴定义的,则指定主轴很有用。Z 轴是默认的主轴,因为这与默认的 MATLAB 三维视图一致。
有两个相机工具(环移和平转/纵转)允许您选择主轴和不受坐标轴限制的移动。在屏幕上,旋转轴由一条与主轴平行的垂直线和一条与主轴垂直的水平线决定,这两条线都穿过 CameraTarget
属性所定义的点。
例如,当主轴是 z 轴时,移动时所围绕的中心轴为
穿过相机目标并与 z 轴平行的垂直线
穿过相机目标并与 z 轴垂直的水平线
这意味着场景(或相机,视情况而定)以相机目标为中心进行弧线移动。下图显示了主轴为 z 轴时的旋转轴。
旋转轴始终穿过相机目标。
针对三维相机移动的优化
当您创建绘图时,MATLAB 将以适合图窗窗口的纵横比显示它。这一行为可能无法产生最优的三维图形操作环境,当您围绕场景移动相机时,可能会产生变形。为了避免可能的变形,最好切换到三维可视化模式(从命令行中使用命令 axis
vis3d
来启用)。使用相机工具栏时,MATLAB 会自动切换到三维可视化模式,但会首先通过以下对话框发出警告。
此对话框在每个 MATLAB 会话中仅出现一次。
相机移动控件
本节讨论可从工具栏上选择的各项相机移动功能。
注意
理解下面的图时,请记住,相机始终指向相机目标。有关相机移动中涉及到的图形属性的说明,请参阅相机图形术语。
环移相机
环移相机围绕 z 轴(默认值)旋转相机。您可以使用主轴选择器选择围绕 x 轴、y 轴、z 轴旋转或者选择不受坐标轴限制的旋转。不使用主轴时,可以围绕任意轴旋转。
图形属性
环移相机会更改 CameraPosition
属性,但 CameraTarget
保持不变。
环移场景灯光
场景灯光是相对于相机位置放置的光源。默认情况下,场景灯光位于相机的右侧(即 camlight
right
)。“环移场景灯光”可改变光源离相机位置的偏移量。场景灯光只有一个,但您可以使用 light
命令添加其他光源。
点击黄色灯泡图标可以打开和关闭场景灯光。
图形属性
环移场景灯光通过更改光源的 Position
属性来移动场景灯光。
平转/纵转相机
“平转/纵转相机”可移动场景中相机所指向的点,但相机保持固定。默认情况下,移动围绕 z 轴沿弧线进行。您可以使用主轴选择器选择围绕 x 轴、y 轴、z 轴旋转或者选择不受坐标轴限制的旋转。
图形属性
平转/纵转相机通过更改 CameraTarget
属性来移动场景中相机所指向的点。
水平/垂直移动相机
水平或垂直移动光标(或两者的任意组合)将按相同方向移动场景。
图形属性
水平和垂直移动可通过沿平行线协调一致地移动 CameraPosition
和 CameraTarget
来实现。
向前和向后移动相机
向上或向右移动光标可将相机移向场景。向下或向左移动光标可将相机移离场景。可以移动相机穿过场景中的对象,到达相机目标的另一侧。
图形属性
此功能沿相机位置与相机目标之间的连线移动 CameraPosition
。
缩放相机
使用“缩放相机”功能,向上或向右移动光标时,可使场景变大;向下或向左移动光标时,可使场景变小。缩放并不会移动相机,因此不能移动视点使之穿过场景中的对象。
图形属性
缩放可通过更改 CameraViewAngle
来实现。角度越大,场景越小,反之亦然。
相机滚转
相机滚转是围绕观察轴旋转相机,从而旋转屏幕上的视图。
图形属性
相机滚转将更改 CameraUpVector
。