rgl (version 0.100.50)

par3dinterp: Interpolator for par3d parameters

Description

Returns a function which interpolates par3d parameter values, suitable for use in animations.

Usage

par3dinterp(times = NULL, userMatrix, scale, zoom, FOV, 
            method = c("spline", "linear"), 
            extrapolate = c("oscillate", "cycle", "constant", "natural"),
            dev = rgl.cur(), subscene = par3d("listeners", dev = dev))

Arguments

times

Times at which values are recorded or a list; see below

userMatrix

Values of par3d("userMatrix")

scale

Values of par3d("scale")

zoom

Values of par3d("zoom")

FOV

Values of par3d("FOV")

method

Method of interpolation

extrapolate

How to extrapolate outside the time range

dev

Which rgl device to use

subscene

Which subscene to use

Value

A function is returned. The function takes one argument, and returns a list of par3d settings interpolated to that time.

Details

This function is intended to be used in constructing animations. It produces a function that returns a list suitable to pass to par3d, to set the viewpoint at a given point in time.

All of the parameters are optional. Only those par3d parameters that are specified will be returned.

The input values other than times may each be specified as lists, giving the parameter value settings at a fixed time, or as matrices or arrays. If not lists, the following formats should be used: userMatrix can be a 4 x 4 x n array, or a 4 x 4n matrix; scale should be an n x 3 matrix; zoom and FOV should be length n vectors.

An alternative form of input is to put all of the above arguments into a list (i.e. a list of lists, or a list of arrays/matrices/vectors), and pass it as the first argument. This is the most convenient way to use this function with the function tkpar3dsave.

Interpolation is by cubic spline or linear interpolation in an appropriate coordinate-wise fashion. Extrapolation may oscillate (repeat the sequence forward, backward, forward, etc.), cycle (repeat it forward), be constant (no repetition outside the specified time range), or be natural (linear on an appropriate scale). In the case of cycling, the first and last specified values should be equal, or the last one will be dropped. Natural extrapolation is only supported with spline interpolation.

See Also

play3d to play the animation.

Examples

Run this code
# NOT RUN {
f <- par3dinterp( zoom = c(1, 2, 3, 1) )
f(0)
f(1)
f(0.5)
# }
# NOT RUN {
play3d(f)
# }

Run the code above in your browser using DataCamp Workspace