# ViewMatrix

is an option for Graphics3D and related functions that can be used to specify a pair of explicit homogeneous transformation and projection matrices for 3D coordinates.

# Details • ViewMatrix can be set to a pair of 4×4 matrices {t,p}, where t is a homogeneous transformation matrix and p is a projection matrix in 3D.
• The transformation matrix t is applied to the list {x,y,z,1} for each point. The projection matrix p is applied to the resulting vectors from the transformation.
• If the result is {tx,ty,tz,tw}, then the screen coordinates for each point are taken to be given by {tx,ty}/tw.
• With the default setting , the matrices {t,p} are found automatically from the settings for options such as ViewPoint, ViewVertical, and ViewAngle.
• AbsoluteOptions gives the explicit matrices used by .
• An explicit setting ViewMatrix->{t,p} overrides settings for ViewVector, ViewPoint, and other view options.

# Examples

open allclose all

## Basic Examples(2)

Define a rescaling transform t:

Define an orthographic projection p from the front:

Display a 3D object using the orthographic view:

Define a transform t that rotates an object 45° around and axes, then rescales it:

Define an orthographic projection p from the negative direction:

Display a 3D object using the orthographic view:

## Scope(2)

Transformation matrices with different rotation angles around the axis:

Orthographic projections from different sides:

## Applications(1)

### Oblique Projection(1)

Draw a simple 3D bar chart:

Define a rescaling transform matrix that rescales the bar charts into a unit cube:

Define an orthographic view matrix from the front:

Define an oblique projection matrix with an angle t and a scaling factor s:

Display the projected bar chart:

## Properties & Relations(1)

Define a transformation function with rotations and rescaling:

Define an orthographic projection matrix from the front:

Show the orthographic view with lighting from the front to the center, using ViewMatrix:

The same result can be achieved by using an explicit ViewPoint and transforming 3D objects and lighting: