Matrix.Shear Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 PaintEventArgse
ein 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:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für