Matrix.Shear Metodo

Definizione

Applica il vettore di taglio specificato a questo Matrix oggetto anteponendo il vettore di taglio.

Overload

Nome Descrizione
Shear(Single, Single)

Applica il vettore di taglio specificato a questo Matrix oggetto anteponendo la trasformazione shear.

Shear(Single, Single, MatrixOrder)

Applica il vettore di taglio specificato a questo Matrix oggetto nell'ordine specificato.

Shear(Single, Single)

Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs

Applica il vettore di taglio specificato a questo Matrix oggetto anteponendo la trasformazione shear.

public:
 void Shear(float shearX, float shearY);
public void Shear(float shearX, float shearY);
member this.Shear : single * single -> unit
Public Sub Shear (shearX As Single, shearY As Single)

Parametri

shearX
Single

Fattore di taglio orizzontale.

shearY
Single

Fattore di taglio verticale.

Esempio

L'esempio di codice seguente è progettato per l'uso con Windows Forms e richiede PaintEventArgse, un oggetto evento Paint. Il codice esegue l'azione seguente:

  • Disegna un rettangolo sullo schermo, usando una penna verde, prima di applicare una trasformazione di ridimensionamento.

  • Crea un Matrix oggetto e lo usa per impostare una trasformazione della coordinata globale per .Graphics

  • Disegna un altro rettangolo usando una penna rossa.

  • Disegna un'ellisse utilizzando una penna blu.

Il risultato è un rettangolo verde, un parallelogramma rosso e un ellisse blu trasformato. Si noti che il rettangolo verde (disegnato prima di impostare la trasformazione) usa direttamente le coordinate fornite nella DrawRectangle chiamata. Le altre due figure vengono trasformate prima del disegno. Il rettangolo viene trasformato in un parallelogramma (rosso) e l'ellisse (blu) viene trasformato in modo da adattarsi al parallelogramma trasformato. Si noti che la parte inferiore del rettangolo viene spostata (sheared) nell'asse x da un fattore pari a due volte l'altezza del rettangolo, formando così il parallelogramma.

public:
   void MatrixShearExample( PaintEventArgs^ e )
   {
      Matrix^ myMatrix = gcnew Matrix;
      myMatrix->Shear( 2, 0 );
      e->Graphics->DrawRectangle( gcnew Pen( Color::Green ), 0, 0, 100, 50 );
      e->Graphics->MultiplyTransform( myMatrix );
      e->Graphics->DrawRectangle( gcnew Pen( Color::Red ), 0, 0, 100, 50 );
      e->Graphics->DrawEllipse( gcnew Pen( Color::Blue ), 0, 0, 100, 50 );
   }
public void MatrixShearExample(PaintEventArgs e)
{
    Matrix myMatrix = new Matrix();
    myMatrix.Shear(2, 0);
    e.Graphics.DrawRectangle(new Pen(Color.Green), 0, 0, 100, 50);
    e.Graphics.MultiplyTransform(myMatrix);
    e.Graphics.DrawRectangle(new Pen(Color.Red), 0, 0, 100, 50);
    e.Graphics.DrawEllipse(new Pen(Color.Blue), 0, 0, 100, 50);
}
Public Sub MatrixShearExample(ByVal e As PaintEventArgs)
    Dim myMatrix As New Matrix
    myMatrix.Shear(2, 0)
    e.Graphics.DrawRectangle(New Pen(Color.Green), 0, 0, 100, 50)
    e.Graphics.MultiplyTransform(myMatrix)
    e.Graphics.DrawRectangle(New Pen(Color.Red), 0, 0, 100, 50)
    e.Graphics.DrawEllipse(New Pen(Color.Blue), 0, 0, 100, 50)
End Sub

Commenti

La trasformazione applicata in questo metodo è una taglio pura solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY fattore è 0, la trasformazione sposta il bordo inferiore orizzontalmente shearX di volte l'altezza del rettangolo. Quando il shearX fattore è 0, sposta il bordo destro verticalmente di shearY volte la larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da stimare. Ad esempio, se entrambi i fattori sono 1, la trasformazione è singolare (di conseguenza non invertibile), accodando l'intero piano a una singola riga.

Si applica a

Shear(Single, Single, MatrixOrder)

Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs
Origine:
Matrix.cs

Applica il vettore di taglio specificato a questo Matrix oggetto nell'ordine specificato.

public:
 void Shear(float shearX, float shearY, System::Drawing::Drawing2D::MatrixOrder order);
public void Shear(float shearX, float shearY, System.Drawing.Drawing2D.MatrixOrder order);
member this.Shear : single * single * System.Drawing.Drawing2D.MatrixOrder -> unit
Public Sub Shear (shearX As Single, shearY As Single, order As MatrixOrder)

Parametri

shearX
Single

Fattore di taglio orizzontale.

shearY
Single

Fattore di taglio verticale.

order
MatrixOrder

Oggetto MatrixOrder che specifica l'ordine (accodamento o anteporre) in cui viene applicata l'shear.

Esempio

Per un esempio, vedere Shear(Single, Single).

Commenti

La trasformazione applicata in questo metodo è una taglio pura solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY fattore è 0, la trasformazione sposta il bordo inferiore orizzontalmente shearX di volte l'altezza del rettangolo. Quando il shearX fattore è 0, sposta il bordo destro verticalmente di shearY volte la larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da stimare. Ad esempio, se entrambi i fattori sono 1, la trasformazione è singolare (di conseguenza non invertibile), accodando l'intero piano a una singola riga.

Si applica a