# 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. Matrix3x2F also has these types of members:

## Methods

The Matrix3x2F class has these methods.

Method Description
Matrix3x2F::Determinant Calculates the determinant of the matrix.
Matrix3x2F::Identity Creates an identity matrix.
Matrix3x2F::Invert Inverts the matrix, if it is invertible.
Matrix3x2F::IsIdentity Indicates whether this matrix is the identity matrix.
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* 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.
Matrix3x2F::ReinterpretBaseType Converts the specified D2D1_MATRIX_3X2_F matrix to a Matrix3x2F without making a copy.
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.
Matrix3x2F::Scale Creates a scale transformation that has the specified scale factors and center point.
Matrix3x2F::SetProduct Multiplies the two matrices and stores the result in this matrix.
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.
Matrix3x2F::Translation Creates a translation transformation that has the specified x and y displacements.

## 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);

``````

## 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