# Matrix3x2F class (d2d1helper.h)

The Matrix3x2F class represents a 3-by-2 matrix and provides convenience methods for creating matrices.

## Inheritance

The Matrix3x2F class inherits from D2D1_MATRIX_3X2_F.

## Methods

The Matrix3x2F class has these methods.

Matrix3x2F::Determinant

Calculates the determinant of the matrix. (Matrix3x2F.Determinant)
Matrix3x2F::Identity

Creates an identity matrix. (Matrix3x2F.Identity)
Matrix3x2F::Invert

Inverts the matrix, if it is invertible.
Matrix3x2F::IsIdentity

Indicates whether this matrix is the identity matrix. (Matrix3x2F.IsIdentity)
Matrix3x2F::IsInvertible

Indicates whether the matrix is invertible.
Matrix3x2F::Matrix3x2F

Instantiates a new instance of the Matrix3x2F class that contains the specified values.
Matrix3x2F::Matrix3x2F

Instantiates a new instance of the Matrix3x2F class without initializing the matrix values.
Matrix3x2F::operator*

The Matrix3x2F::operator-mult (d2d1helper.h) method multiplies this matrix with the specified matrix and returns the result.
Matrix3x2F::ReinterpretBaseType

Converts the specified D2D1_MATRIX_3X2_F matrix to a Matrix3x2F without making a copy. (overload 1/2)
Matrix3x2F::ReinterpretBaseType

Converts the specified D2D1_MATRIX_3X2_F matrix to a Matrix3x2F without making a copy. (overload 2/2)
Matrix3x2F::Rotation

Creates a rotation transformation that has the specified angle and center point.
Matrix3x2F::Scale

Creates a scale transformation that has the specified scale factors and center point. (overload 2/2)
Matrix3x2F::Scale

Creates a scale transformation that has the specified scale factors and center point. (overload 1/2)
Matrix3x2F::SetProduct

Multiplies the two matrices and stores the result in this matrix. (Matrix3x2F.SetProduct)
Matrix3x2F::Skew

Creates a skew transformation that has the specified x-axis and y-axis values and center point.
Matrix3x2F::TransformPoint

Uses this matrix to transform the specified point and returns the result.
Matrix3x2F::Translation

Creates a translation transformation that has the specified x and y displacements. (overload 1/2)
Matrix3x2F::Translation

Creates a translation transformation that has the specified x and y displacements. (overload 2/2)

## Remarks

The Matrix3x2F class provides many static methods to create transformation matrices. The following table provides frequently used methods and the how-to topics associated with them.

Method How-To
Skew How to Skew an Object
Rotation How to Rotate an Object
Scale How to Scale an Object
Translation How to Translate an Object

Transforms can be applied to objects or to an entire drawing surface. To apply transforms to an entire drawing surface, call the ID2D1RenderTarget::SetTransform method. For individual objects, such as brushes or geometries, call the ID2D1Brush::SetTransform method or the ID2D1Geometry methods.

#### Examples

The following example uses the D2D1::Matrix3x2F::Rotation method to create a rotation matrix that rotates a square clockwise 45 degrees about the center of the square and passes the matrix to the SetTransform method of the render target (m_pRenderTarget).

The following illustration shows the effect of applying the preceding rotation transformation to the square. The original square is a dotted outline, and the rotated square is a solid outline. ``````    // Create a rectangle.
D2D1_RECT_F rectangle = D2D1::Rect(438.0f, 301.5f, 498.0f, 361.5f);

// Draw the rectangle.
m_pRenderTarget->DrawRectangle(
rectangle,
m_pOriginalShapeBrush,
1.0f,
m_pStrokeStyleDash
);

// Apply the rotation transform to the render target.
m_pRenderTarget->SetTransform(
D2D1::Matrix3x2F::Rotation(
45.0f,
D2D1::Point2F(468.0f, 331.5f))
);

// Fill the rectangle.
m_pRenderTarget->FillRectangle(rectangle, m_pFillBrush);

// Draw the transformed rectangle.
m_pRenderTarget->DrawRectangle(rectangle, m_pTransformedShapeBrush);

``````

Code has been omitted from this example. For more information about transforms, see the Transforms Overview.

## Requirements

Minimum supported client Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header d2d1helper.h (include D2d1helper.h)