Matrix.ScaleAtPrepend(Double, Double, Double, Double) Methode

Definition

Stellt der Matrix die angegebene Skalierung auf dem angegebenen Punkt voran.

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

Der Skalierungsfaktor für die x-Achse.

scaleY
Double

Der Skalierungsfaktor für die y-Achse.

centerX
Double

Die x-Koordinate des Punkts, auf dem die Skalierung ausgeführt wird.

centerY
Double

Die y-Koordinate des Punkts, auf dem die Skalierung ausgeführt wird.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie eine Skalierung in eine MatrixSkalierung vorstellen.


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 einzelner Transformationen wichtig. Wenn Sie beispielsweise zuerst drehen, dann skalieren Sie, und übersetzen Sie dann ein anderes Ergebnis, als wenn Sie zuerst übersetzen, dann drehen und dann skalieren. Ein Grund für die Reihenfolge ist, dass Transformationen wie Drehung und Skalierung im Hinblick auf den Ursprung des Koordinatensystems durchgeführt werden. Das Skalieren eines Objekts, das am Ursprung zentriert ist, erzeugt ein anderes Ergebnis als die Skalierung eines Objekts, das vom Ursprung entfernt wurde. Ähnlich erzeugt die Drehung eines Objekts, das am Ursprung zentriert ist, ein anderes Ergebnis als das Drehen eines Objekts, das vom Ursprung entfernt wurde.

Gilt für