Matrix.Shear Méthode

Définition

Applique le vecteur d'inclinaison spécifié à ce Matrix en l'ajoutant au début.

Surcharges

Shear(Single, Single, MatrixOrder)

Applique le vecteur d'inclinaison spécifié à ce Matrix dans l'ordre spécifié.

Shear(Single, Single)

Applique le vecteur d'inclinaison spécifié à ce Matrix en l'ajoutant au début de la transformation d'inclinaison.

Shear(Single, Single, MatrixOrder)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

Applique le vecteur d'inclinaison spécifié à ce Matrix dans l'ordre spécifié.

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)

Paramètres

shearX
Single

Facteur d'inclinaison horizontale.

shearY
Single

Facteur d'inclinaison verticale.

order
MatrixOrder

MatrixOrder qui spécifie l'ordre (ajout au début ou à la fin) dans lequel l'inclinaison est appliquée.

Exemples

Pour obtenir un exemple, consultez Shear(Single, Single).

Remarques

La transformation appliquée dans cette méthode est un cisaillement pur uniquement si l’un des paramètres est 0. Appliquée à un rectangle à l’origine, lorsque le shearY facteur est égal à 0, la transformation déplace le bord inférieur horizontalement par shearX fois la hauteur du rectangle. Lorsque le shearX facteur est égal à 0, il déplace le bord droit verticalement par shearY fois la largeur du rectangle. La prudence est de mise lorsque les deux paramètres ne sont pas nuls, car les résultats sont difficiles à prédire. Par exemple, si les deux facteurs ont la valeur 1, la transformation est au singulier (donc non invertible), ce qui met l’ensemble du plan en file d’attente sur une seule ligne.

S’applique à

Shear(Single, Single)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

Applique le vecteur d'inclinaison spécifié à ce Matrix en l'ajoutant au début de la transformation d'inclinaison.

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)

Paramètres

shearX
Single

Facteur d'inclinaison horizontale.

shearY
Single

Facteur d'inclinaison verticale.

Exemples

L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse, un objet d’événementPaint. Le code effectue l’action suivante :

  • Dessine un rectangle à l’écran, à l’aide d’un stylet vert, avant d’appliquer une transformation de mise à l’échelle.

  • Crée un Matrix et l’utilise pour définir une transformation de coordonnées mondiales pour le Graphics.

  • Dessine un autre rectangle à l’aide d’un stylet rouge.

  • Dessine une ellipse à l’aide d’un stylet bleu.

Le résultat est un rectangle vert, un paralléliogramme rouge et une ellipse bleue transformée. Notez que le rectangle vert (dessiné avant la définition de la transformation) utilise directement les coordonnées fournies dans l’appel DrawRectangle . Les deux autres figures sont transformées avant le dessin. Le rectangle est transformé en paralléliogramme (rouge), et l’ellipse (bleue) est transformée pour tenir dans le paralléliogramme transformé. Notez que le bas du rectangle est déplacé (caillelé) dans l’axe des X d’un facteur de deux fois la hauteur du rectangle, formant ainsi le paralléliogramme.

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

Remarques

La transformation appliquée dans cette méthode est un cisaillement pur uniquement si l’un des paramètres est 0. Appliquée à un rectangle à l’origine, lorsque le shearY facteur est égal à 0, la transformation déplace le bord inférieur horizontalement par shearX fois la hauteur du rectangle. Lorsque le shearX facteur est égal à 0, il déplace le bord droit verticalement par shearY fois la largeur du rectangle. La prudence est de mise lorsque les deux paramètres ne sont pas nuls, car les résultats sont difficiles à prédire. Par exemple, si les deux facteurs ont la valeur 1, la transformation est au singulier (donc non invertible), ce qui met l’ensemble du plan en file d’attente sur une seule ligne.

S’applique à