Matrix.ScaleAtPrepend(Double, Double, Double, Double) Metodo

Definizione

Antepone la scala specificata sul punto specificato di questo Matrixoggetto .

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)

Parametri

scaleX
Double

Fattore di scala dell'asse x.

scaleY
Double

Fattore di scala dell'asse y.

centerX
Double

Coordinata x del punto su cui viene eseguita l'operazione di scala.

centerY
Double

Coordinata y del punto su cui viene eseguita l'operazione di scala.

Esempio

Nell'esempio seguente viene illustrato come anteporre una scala a un oggetto 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;
}

Commenti

In una trasformazione composita, l'ordine delle singole trasformazioni è importante. Ad esempio, se prima si ruota, poi si ridimensiona, poi si trasla, si ottiene un risultato diverso rispetto a se prima si trasla, poi si ruota, poi si ridimensiona. Un motivo per cui l'ordine è significativo è che le trasformazioni come la rotazione e il ridimensionamento si effettuano rispetto all'origine del sistema di coordinate. Il ridimensionamento di un oggetto centrato in corrispondenza dell'origine produce un risultato diverso rispetto al ridimensionamento di un oggetto spostato dall'origine. Analogamente, la rotazione di un oggetto centrato in corrispondenza dell'origine produce un risultato diverso rispetto alla rotazione di un oggetto spostato dall'origine.

Si applica a