Main Content

play

Animate virtual reality world for given position and angle in time series data

Syntax

Description

example

play(h) animates the virtual reality world in h for the current TimeseriesDataSource at the specified rate given by the 'TimeScaling' property (in seconds of animation data per second of wall-clock time) and animated at a certain number of frames per second using the 'FramesPerSecond' property.

Examples

collapse all

This example shows how to animate the virtual reality world, asttkoff.

h = Aero.VirtualRealityAnimation;
h.FramesPerSecond = 10;
h.TimeScaling = 5;
h.VRWorldFilename = 'asttkoff.wrl';
h.initialize();

load takeoffData
[~, idxPlane] = find(strcmp('Plane', h.nodeInfo));
h.Nodes{idxPlane}.TimeSeriesSource = takeoffData;
h.Nodes{idxPlane}.TimeSeriesSourceType = 'StructureWithTime';
h.Nodes{idxPlane}.CoordTransformFcn = @vranimCustomTransform;
h.play();

Input Arguments

collapse all

Virtual reality animation object, specified as an Aero.VirtualRealityAnimation object.

More About

collapse all

Algorithm

The time series data is interpreted according to the 'TimeSeriesSourceType' property, which can be one of:

'timeseries'

MATLAB® time series data with six values per time:

x y z phi theta psi

The values are resampled.

'Simulink.Timeseries'

Simulink.Timeseries (Simulink® signal logging):

  • First data item

    x y z

  • Second data item

    phi theta psi

'StructureWithTime'

Simulink struct with time (for example, Simulink root outport logging 'Structure with time'):

  • signals(1).values: x y z

  • signals(2).values: phi theta psi

Signals are linearly interpolated vs. time using interp1.

'Array6DoF'A double-precision array in n rows and 7 columns for 6-DoF data: time x y z phi theta psi. If a double-precision array of 8 or more columns is in 'TimeSeriesSource', the first 7 columns are used as 6-DoF data.
'Array3DoF'A double-precision array in n rows and 4 columns for 3-DoF data: time x z theta. If a double-precision array of 5 or more columns is in 'TimeSeriesSource', the first 4 columns are used as 3-DoF data.
'Custom'Position and angle data is retrieved from 'TimeSeriesSource' by the currently registered 'TimeseriesReadFcn'.

The time advancement algorithm used by play is based on animation frames counted by ticks:

ticks = ticks + 1;
time  = tstart + ticks*FramesPerSecond*TimeScaling;

where

TimeScalingSpecify the seconds of animation data per second of wall-clock time.
FramesPerSecondSpecify the number of frames per second used to animate the 'TimeSeriesSource'.

For default 'TimeseriesReadFcn' methods, the last frame played is the last time value.

Time is in seconds, position values are in the same units as the geometry data loaded into the animation object, and all angles are in radians.

Version History

Introduced in R2007b

See Also