Matrix.ScaleAtPrepend(Double, Double, Double, Double) Matrix.ScaleAtPrepend(Double, Double, Double, Double) Matrix.ScaleAtPrepend(Double, Double, Double, Double) Matrix.ScaleAtPrepend(Double, Double, Double, Double) Method

Definition

Stellt der Matrix die angegebene Skalierung auf dem angegebenen Punkt voran.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)

Parameter

scaleX
Double Double Double Double

Der Skalierungsfaktor für die x-Achse.The x-axis scale factor.

scaleY
Double Double Double Double

Der Skalierungsfaktor für die y-Achse.The y-axis scale factor.

centerX
Double Double Double Double

Die x-Koordinate des Punkts, auf dem die Skalierung ausgeführt wird.The x-coordinate of the point about which the scale operation is performed.

centerY
Double Double Double Double

Die y-Koordinate des Punkts, auf dem die Skalierung ausgeführt wird.The y-coordinate of the point about which the scale operation is performed.

Beispiele

Im folgenden Beispiel wird gezeigt, wie einer Skala Matrixvorangestellt wird.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;

}        

Hinweise

In einer zusammengesetzten Transformation ist die Reihenfolge der einzelnen Transformationen wichtig.In a composite transformation, the order of individual transformations is important. Wenn Sie z. b. zuerst drehen, dann skalieren und dann übersetzen, erhalten Sie ein anderes Ergebnis als bei der ersten Übersetzung, dann drehen und skalieren.For example, if you first rotate, then scale, then translate, you get a different result than if you first translate, then rotate, then scale. Eine Grundordnung ist wichtig, wenn Transformationen wie Drehung und Skalierung in Bezug auf den Ursprung des Koordinatensystems ausgeführt werden.One reason order is significant is that transformations like rotation and scaling are done with respect to the origin of the coordinate system. Das Skalieren eines Objekts, das am Ursprung zentriert ist, erzeugt ein anderes Ergebnis als das Skalieren eines Objekts, das vom Ursprung entfernt wurde.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. Entsprechend erzeugt das Drehen eines Objekts, das am Ursprung zentriert ist, ein anderes Ergebnis als das Drehen eines Objekts, das vom Ursprung entfernt wurde.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.

Gilt für: