Matrix.Shear Metodo

Definizione

Applica il vettore di taglio specificato a questa classe Matrix anteponendolo.

Overload

Shear(Single, Single, MatrixOrder)

Applica il vettore di taglio specificato alla classe Matrix nell'ordine indicato.

Shear(Single, Single)

Applica il vettore di taglio specificato a questa classe Matrix anteponendo la trasformazione di taglio.

Shear(Single, Single, MatrixOrder)

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

Applica il vettore di taglio specificato alla classe Matrix nell'ordine indicato.

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

Enumerazione MatrixOrder che specifica l'ordine (antecedente o posticipato) in cui viene applicato il taglio.

Esempio

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

Commenti

La trasformazione applicata in questo metodo è un taglio puro solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY fattore è 0, la trasformazione sposta orizzontalmente shearX il bordo inferiore in base all'altezza del rettangolo. Quando il shearX fattore è 0, sposta verticalmente il bordo destro in senso shearY verticale in base alla larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da prevedere. 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)

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

Applica il vettore di taglio specificato a questa classe Matrix anteponendo la trasformazione di taglio.

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 Paint oggetto evento. 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 utilizzando 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 per adattarsi al parallelogramma trasformato. Si noti che la parte inferiore del rettangolo viene spostata (a forma di sheare) nell'asse x da un fattore di 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 è un taglio puro solo se uno dei parametri è 0. Applicato a un rettangolo all'origine, quando il shearY fattore è 0, la trasformazione sposta orizzontalmente shearX il bordo inferiore in base all'altezza del rettangolo. Quando il shearX fattore è 0, sposta verticalmente il bordo destro in senso shearY verticale in base alla larghezza del rettangolo. Attenzione è in ordine quando entrambi i parametri sono diversi da zero, perché i risultati sono difficili da prevedere. 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