Set the viewpoint orientation.

view3d( theta = 0, phi = 15, fov = 60, zoom = 1, 
        scale = par3d("scale"), interactive = TRUE, userMatrix, 
        type = c("userviewpoint", "modelviewpoint") )


theta, phi

polar coordinates in degrees. theta rotates round the vertical axis. phi rotates round the horizontal axis.


field-of-view angle in degrees


zoom factor


real length 3 vector specifying the rescaling to apply to each axis


logical, specifying if interactive navigation is allowed


4x4 matrix specifying user point of view


which viewpoint to set?


The data model can be rotated using the polar coordinates theta and phi. Alternatively, it can be set in a completely general way using the 4x4 matrix userMatrix. If userMatrix is specified, theta and phi are ignored.

The pointing device of your graphics user-interface can also be used to set the viewpoint interactively. With the pointing device the buttons are by default set as follows:


adjust viewpoint position


adjust field of view angle

right or wheel

adjust zoom factor

The user's view can be set with fov and zoom.

If the fov angle is set to 0, a parallel or orthogonal projection is used. Small non-zero values (e.g. 0.01 or less, but not 0.0) are likely to lead to rendering errors due to OpenGL limitations.

Prior to version 0.94, all of these characteristics were stored in one viewpoint object. With that release the characteristics are split into those that affect the projection (the user viewpoint) and those that affect the model (the model viewpoint). By default, this function sets both, but the type argument can be used to limit the effect.

See also


if (FALSE) { # \dontrun{
# animated round trip tour for 10 seconds

shade3d(oh3d(), color = "red")

start <- proc.time()[3]
while ((i <- 36*(proc.time()[3] - start)) < 360) {
  view3d(i, i/4); 
} # }