Partage via


Matrix.Shear Méthode

Définition

Applique le vecteur de cisaillement spécifié à cette Matrix en prédéfinissant le vecteur de cisaillement.

Surcharges

Shear(Single, Single, MatrixOrder)

Applique le vecteur de cisaillement spécifié à cette Matrix dans l’ordre spécifié.

Shear(Single, Single)

Applique le vecteur de cisaillement spécifié à cette Matrix en prédéfinissant la transformation de shérifie.

Shear(Single, Single, MatrixOrder)

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

Applique le vecteur de cisaillement spécifié à cette 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 de shérif horizontal.

shearY
Single

Facteur de shérif vertical.

order
MatrixOrder

Un MatrixOrder qui spécifie l’ordre (ajout ou prépendant) dans lequel le shérif est appliqué.

Exemples

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

Remarques

La transformation appliquée dans cette méthode est un shérif pur uniquement si l’un des paramètres est 0. Appliquée à un rectangle à l’origine, lorsque le facteur shearY est 0, la transformation déplace le bord inférieur horizontalement par shearX fois la hauteur du rectangle. Lorsque le facteur shearX est égal à 0, il déplace verticalement le bord droit par shearY fois la largeur du rectangle. La prudence est dans l’ordre lorsque les deux paramètres ne sont pas zéro, car les résultats sont difficiles à prédire. Par exemple, si les deux facteurs sont 1, la transformation est singulière (par conséquent non inversée), en mettant le plan entier en une seule ligne.

S’applique à

Shear(Single, Single)

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

Applique le vecteur de cisaillement spécifié à cette Matrix en prédéfinissant la transformation de shérifie.

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 de shérif horizontal.

shearY
Single

Facteur de shérif vertical.

Exemples

L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse, un objet d’événement Paint. 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ée mondiale pour le Graphics.

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

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

Le résultat est un rectangle vert, un parallélisme rouge et un ellipse bleu transformé. Notez que le rectangle vert (dessiné avant de définir 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élisme (rouge), et l’ellipse (bleu) est transformé pour s’adapter à l’parallélisme transformé. Notez que le bas du rectangle est déplacé (sécateur) dans l’axe des x par un facteur de deux fois la hauteur du rectangle, formant ainsi le parallélisme.

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 shérif pur uniquement si l’un des paramètres est 0. Appliquée à un rectangle à l’origine, lorsque le facteur shearY est 0, la transformation déplace le bord inférieur horizontalement par shearX fois la hauteur du rectangle. Lorsque le facteur shearX est égal à 0, il déplace verticalement le bord droit par shearY fois la largeur du rectangle. La prudence est dans l’ordre lorsque les deux paramètres ne sont pas zéro, car les résultats sont difficiles à prédire. Par exemple, si les deux facteurs sont 1, la transformation est singulière (par conséquent non inversée), en mettant le plan entier en une seule ligne.

S’applique à