Matrix.Shear Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 à
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour