Freigeben über


Matrix.Shear Methode

Definition

Wendet den angegebenen Schervektor auf diese Matrix an, indem der Schubvektor voraussteht.

Überlädt

Shear(Single, Single)

Wendet den angegebenen Schervektor auf diese Matrix an, indem die Schubtransformation voraussteht.

Shear(Single, Single, MatrixOrder)

Wendet den angegebenen Schervektor auf diese Matrix in der angegebenen Reihenfolge an.

Shear(Single, Single)

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

Wendet den angegebenen Schervektor auf diese Matrix an, indem die Schubtransformation voraussteht.

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 Scherfaktor.

shearY
Single

Der vertikale Scherfaktor.

Beispiele

Das folgende Codebeispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, ein Paint-Ereignisobjekt. Der Code führt die folgende Aktion aus:

  • Zeichnet ein Rechteck auf dem Bildschirm mit einem grünen Stift, bevor eine Skalierungstransformation angewendet wird.

  • Erstellt eine Matrix und verwendet es, um eine Weltkoordinatentransformation für die Graphicsfestzulegen.

  • Zeichnet ein weiteres Rechteck mit einem roten Stift.

  • Zeichnet eine Auslassungspunkte mit einem blauen Stift.

Das Ergebnis ist ein grünes Rechteck, ein rotes Parallelogramm und ein transformiertes, blaues Auslassungspunkte. Beachten Sie, dass das grüne Rechteck (gezeichnet vor dem Festlegen der Transformation) direkt die im DrawRectangle Aufruf angegebenen Koordinaten verwendet. Die anderen beiden Abbildungen werden vor dem Zeichnen transformiert. Das Rechteck wird in ein Parallelogramm (rot) transformiert, und die Auslassungspunkte (Blau) werden in das transformierte Parallelogramm umgewandelt. Beachten Sie, dass der untere Rand des Rechtecks in der X-Achse um einen Faktor von zwei Mal der Höhe des Rechtecks verschoben wird und somit das Parallelogramm bildet.

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 ein reines Scheren, wenn einer der Parameter 0 ist. Wird auf ein Rechteck am Ursprung angewendet, wenn der shearY Faktor 0 ist, verschiebt die Transformation den unteren Rand horizontal um shearX Mal die Höhe des Rechtecks. Wenn der shearX Faktor 0 ist, wird der rechte Rand vertikal um shearY Mal die Breite des Rechtecks verschoben. Vorsicht ist in der Reihenfolge, wenn beide Parameter nicht null sind, da die Ergebnisse schwer vorherzusagen sind. Wenn z. B. beide Faktoren 1 sind, ist die Transformation singular (daher nicht unwiderbar), wobei die gesamte Ebene in eine einzelne Linie queeziert wird.

Gilt für:

Shear(Single, Single, MatrixOrder)

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

Wendet den angegebenen Schervektor auf diese Matrix in der angegebenen Reihenfolge an.

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 Scherfaktor.

shearY
Single

Der vertikale Scherfaktor.

order
MatrixOrder

Ein MatrixOrder, der die Reihenfolge (anfügen oder vorangestellt) angibt, in der die Schere angewendet wird.

Beispiele

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

Hinweise

Die in dieser Methode angewendete Transformation ist nur dann ein reines Scheren, wenn einer der Parameter 0 ist. Wird auf ein Rechteck am Ursprung angewendet, wenn der shearY Faktor 0 ist, verschiebt die Transformation den unteren Rand horizontal um shearX Mal die Höhe des Rechtecks. Wenn der shearX Faktor 0 ist, wird der rechte Rand vertikal um shearY Mal die Breite des Rechtecks verschoben. Vorsicht ist in der Reihenfolge, wenn beide Parameter nicht null sind, da die Ergebnisse schwer vorherzusagen sind. Wenn z. B. beide Faktoren 1 sind, ist die Transformation singular (daher nicht unwiderbar), wobei die gesamte Ebene in eine einzelne Linie queeziert wird.

Gilt für: