Release 11 New Features |
Visualization Enhancements
Support for OpenGL Renderers
The OpenGL renderer is available on many computer systems. This renderer is generally faster than MATLAB's painters or Z-buffer renderers. If your system has graphics hardware that is available to OpenGL, MATLAB uses it to achieve even greater performance improvements. This results in greatly improved drawing performance, particularly with graphics cards that support OpenGL. See the FigureRenderer
property in the online MATLAB Function Reference for more information.
New View Control Commands
MATLAB 5.2 contained a number of new commands that simplify camera positioning and aspect ratio control. These commands implement operations similar to those associated with movie camera operation - dollying, panning, rolling, as well as some that are more typically associated with computer graphics, such as orbiting the camera around the scene and selecting a method for projecting the three-dimensional scene on the computer screen.Complex Camera Operations
This table lists commands that simplify the process of moving the camera in a well defined manner through three-dimensional space.Function or Property |
Purpose |
camdolly |
Move camera position and camera target. |
camorbit |
Orbit about camera target. |
campan |
Rotate camera target about camera position. |
camroll |
Rotate camera about viewing axis. |
camzoom |
Zoom camera in or out. |
Camera and Axis Control
This table lists new commands that provide a convenient way to set axes properties. These properties control camera positioning as well as axis limits and aspect ratio.Function or Property |
Purpose |
campos |
Set or get camera position. |
camproj |
Set or get projection type. |
camtarget |
Set or get camera target. |
camup |
Set or get camera up-vector. |
camva |
Set or get camera view angle. |
daspect |
Set or get data aspect ratio. |
pbaspect |
Set or get plot box aspect ratio. |
xlim |
Set or get the current x-axis limits. |
ylim |
Set or get the current y-axis limits. |
zlim |
Set or get the current z-axis limits. |
New Lighting Convenience Commands
MATLAB 5.2 added two new commands to simplify the placement of light objects in the axes.Function or Property |
Purpose |
camlight |
Create or positition a light object in the camera's coordinate system. |
lightangle |
Create or position a light object in spherical coordinates. |
Support for Predefined Paper Types
MATLAB supports a number of new predefined paper types. For a list of these paper types, see the figurePaperType
property.
Mechanism to Hide Objects from Selection
All graphics objects have a new property calledHitTest
that enables you to determine if this object can become the current object or in appropriate cases, the current figure or current axes (see the figure CurrentObject
and CurrentAxes
properties and the root CurrentFigure
property). This feature is useful to exclude certain graphics objects from user interaction (for example, to prevent MATLAB from selecting text annotations that overlay an image as the user clicks on the image to obtain information returned by a callback routine). See the HitTest
property for an example.
New Behavior for newplot, clf, and cla
The behavior of thenewplot
, clf
, and cla
commands is now clearly defined with respect to hidden-handle objects. There are basically three options when drawing graphics in existing figures:
Behavior of newplot
Thenewplot
function now always sets the Figure NextPlo
t property to add
after obeying the current setting. Previously, newplot
:
NextPlot
property if its current value was replacechildren
.
NextPlot
property to its currently defined default after obeying its value of replace
. (While the factory default is add
, user-defined settings can change this.)
newplot
:
NextPlo
t property to add
after obeying the current setting (regardless of user-defined defaults set for NextPlot
).
HandleVisibility
property is set to on
) when the Figure or Axes NextPlot
property is replacechildren
.
HandleVisibility
property) when the Figure or Axes NextPlot
property is replace
.
Behavior of clf and cla
The behavior of theclf
command without the reset
argument has not changed: clf
deletes all children of the current Figure whose handles are not hidden (i.e., their HandleVisibility
property is set to on
).
clf
reset
now deletes all children of the current Figure, regardless of the setting of their HandleVisibility
property. In addition, clf
reset
also resets all Figure properties to their defaults with the exception of Position
, Units
PaperPosition
, and PaperUnits
. Previously, clf
reset
deleted only handle-visible objects.
cla
behaves in a way directly analogous to that of clf
: cla
deletes all children of the current Axes whose handles are not hidden (i.e., their HandleVisibility
property is set to on
).
cla
reset
deletes all children of the current Axes, regardless of the setting of their HandleVisibility
property. In addition, cla
reset
also resets all Axes properties to their defaults with the exception of Position
and Units
.