Matrix.Shear Methode

Definition

Weist den angegebenen Scherungsvektor der Matrix zu, wobei der Scherungsvektor vorangestellt wird.

Überlädt

Shear(Single, Single, MatrixOrder)

Weist den angegebenen Scherungsvektor dieser Matrix in der angegebenen Reihenfolge zu.

Shear(Single, Single)

Weist den angegebenen Scherungsvektor der Matrix zu, wobei die Scherungstransformation vorangestellt wird.

Shear(Single, Single, MatrixOrder)

Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs

Weist den angegebenen Scherungsvektor dieser Matrix in der angegebenen Reihenfolge zu.

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)

Parameter

shearX
Single

Der horizontale Scherungsfaktor.

shearY
Single

Der vertikale Scherungsfaktor.

order
MatrixOrder

Eine MatrixOrder, die die Reihenfolge (angefügt oder vorangestellt) angibt, in der die Scherung zugewiesen wird.

Beispiele

Ein Beispiel finden Sie unter Shear(Single, Single).

Hinweise

Die in dieser Methode angewendete Transformation ist nur dann eine reine Scherung, wenn einer der Parameter 0 ist. Angewendet auf ein Rechteck am Ursprung, wenn der shearY Faktor 0 ist, verschiebt die Transformation den unteren Rand horizontal um shearX die Höhe des Rechtecks. Wenn der shearX Faktor 0 ist, wird der rechte Rand vertikal um shearY die Breite des Rechtecks verschoben. Vorsicht ist geboten, wenn beide Parameter nicht zero sind, da die Ergebnisse schwer vorherzusagen sind. Wenn z. B. beide Faktoren 1 sind, ist die Transformation singular (daher nicht invertierbar), wodurch die gesamte Ebene in eine einzelne Linie gequetsst wird.

Gilt für:

Shear(Single, Single)

Quelle:
Matrix.cs
Quelle:
Matrix.cs
Quelle:
Matrix.cs

Weist den angegebenen Scherungsvektor der Matrix zu, wobei die Scherungstransformation vorangestellt wird.

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)

Parameter

shearX
Single

Der horizontale Scherungsfaktor.

shearY
Single

Der vertikale Scherungsfaktor.

Beispiele

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms konzipiert und erfordert PaintEventArgseein Paint Ereignisobjekt. Der Code führt die folgende Aktion aus:

  • Zeichnet vor dem Anwenden einer Skalierungstransformation ein Rechteck mit einem grünen Stift auf den Bildschirm.

  • Erstellt eine Matrix und verwendet sie, um eine Weltkoordinatentransformation für festzulegen Graphics.

  • Zeichnet ein anderes Rechteck mit einem roten Stift.

  • Zeichnet eine Ellipse mit einem blauen Stift.

Das Ergebnis ist ein grünes Rechteck, ein rotes Parallelogramm und eine transformierte blaue Ellipse. Beachten Sie, dass das grüne Rechteck (gezeichnet vor dem Festlegen der Transformation) direkt die im DrawRectangle Aufruf angegebenen Koordinaten verwendet. Die beiden anderen Figuren werden vor dem Zeichnen transformiert. Das Rechteck wird in ein Parallelogramm (rot) transformiert, und die Ellipse (blau) wird transformiert, um in das transformierte Parallelogramm zu passen. Beachten Sie, dass die Unterseite des Rechtecks in der x-Achse um den Faktor zwei der Höhe des Rechtecks verschoben (verworren) wird, wodurch das Parallelogramm entsteht.

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

Hinweise

Die in dieser Methode angewendete Transformation ist nur dann eine reine Scherung, wenn einer der Parameter 0 ist. Angewendet auf ein Rechteck am Ursprung, wenn der shearY Faktor 0 ist, verschiebt die Transformation den unteren Rand horizontal um shearX die Höhe des Rechtecks. Wenn der shearX Faktor 0 ist, wird der rechte Rand vertikal um shearY die Breite des Rechtecks verschoben. Vorsicht ist geboten, wenn beide Parameter nicht zero sind, da die Ergebnisse schwer vorherzusagen sind. Wenn z. B. beide Faktoren 1 sind, ist die Transformation singular (daher nicht invertierbar), wodurch die gesamte Ebene in eine einzelne Linie gequetsst wird.

Gilt für: