Matrix.ScaleAtPrepend(Double, Double, Double, Double) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Prepends the specified scale about the specified point of this Matrix.
public:
void ScaleAtPrepend(double scaleX, double scaleY, double centerX, double centerY);
public void ScaleAtPrepend (double scaleX, double scaleY, double centerX, double centerY);
member this.ScaleAtPrepend : double * double * double * double -> unit
Public Sub ScaleAtPrepend (scaleX As Double, scaleY As Double, centerX As Double, centerY As Double)
Parameters
- scaleX
- Double
The x-axis scale factor.
- scaleY
- Double
The y-axis scale factor.
- centerX
- Double
The x-coordinate of the point about which the scale operation is performed.
- centerY
- Double
The y-coordinate of the point about which the scale operation is performed.
Examples
The following example shows how to prepend a scale to a Matrix.
private Matrix scalePrependExample()
{
Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);
// Prepend a scale ab with a horizontal factor of 2
// and a vertical factor of 4 about the origin.
// After this operation,
// myMatrix is equal to (10, 20, 60, 80, 25, 30)
myMatrix.ScalePrepend(2, 4);
return myMatrix;
}
private Matrix scalePrependAboutPointExample()
{
Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);
// Prepend a scale with a horizontal factor of 2
// and a vertical factor of 4 about the
// point (100,100).
// After this operation,
// myMatrix is equal to (10, 20, 60, 80, -4975, -6970)
myMatrix.ScaleAtPrepend(2, 4, 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.
Applies to
.NET