# Matrix.RotateAtPrepend(Double, Double, Double) Method

## Definition

Prepends a rotation of the specified angle at the specified point to this Matrix structure.

``````public:
void RotateAtPrepend(double angle, double centerX, double centerY);``````
``public void RotateAtPrepend (double angle, double centerX, double centerY);``
``member this.RotateAtPrepend : double * double * double -> unit``
``Public Sub RotateAtPrepend (angle As Double, centerX As Double, centerY As Double)``

#### Parameters

angle
Double

The rotation angle, in degrees.

centerX
Double

The x-coordinate of the rotation center.

centerY
Double

The y-coordinate of the rotation center.

## Examples

The following example shows how to prepend a rotation to a Matrix.

``````private Matrix prependRotateExample()
{

Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);

// Prepend a 90 degree rotation about the origin.
// myMatrix is now equal to  (15,20,-5,-10,25,30).
myMatrix.RotatePrepend(90);

return myMatrix;
}

{

Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);

// Prepend a 90 degree rotation about the
// point (100,100).
// myMatrix is now equal to  (15,20,-5,-10,1025,2030).
myMatrix.RotateAtPrepend(90, 100, 100);

return myMatrix;
}
``````

## Remarks

In a composite transformation, the order of individual transformations is important. For example, if you first rotate, then scale, then translate, you get a different result than if you first translate, then rotate, then scale. One reason order is significant is that transformations like rotation and scaling are done with respect to the origin of the coordinate system. Scaling an object that is centered at the origin produces a different result than scaling an object that has been moved away from the origin. Similarly, rotating an object that is centered at the origin produces a different result than rotating an object that has been moved away from the origin.