Matrix.Shear Methode

Definitie

Hiermee past u de opgegeven shearvector toe Matrix door de shearvector voor te scheren.

Overloads

Name Description
Shear(Single, Single)

Hiermee past u de opgegeven shearvector toe Matrix door de sheartransformatie vooraf te laten gaan.

Shear(Single, Single, MatrixOrder)

Hiermee past u de opgegeven shearvector toe Matrix in de opgegeven volgorde.

Shear(Single, Single)

Hiermee past u de opgegeven shearvector toe Matrix door de sheartransformatie vooraf te laten gaan.

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)

Parameters

shearX
Single

De horizontale schuiffactor.

shearY
Single

De verticale afschuiffactor.

Voorbeelden

Het volgende codevoorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een Paint-gebeurtenisobject. De code voert de volgende actie uit:

  • Hiermee tekent u een rechthoek op het scherm, met behulp van een groene pen, voordat u een schaaltransformatie toepast.

  • Hiermee maakt u een Matrix en gebruikt om een wereldcoördinaattransformatie in te stellen voor de Graphics.

  • Hiermee tekent u een andere rechthoek met een rode pen.

  • Hiermee tekent u een beletselteken met behulp van een blauwe pen.

Het resultaat is een groene rechthoek, een rood parallellogram en een getransformeerd, blauw beletselteken. U ziet dat de groene rechthoek (getekend vóór het instellen van de transformatie) rechtstreeks gebruikmaakt van de coördinaten die in de DrawRectangle aanroep zijn opgegeven. De andere twee afbeeldingen worden getransformeerd voordat ze worden getekend. De rechthoek wordt getransformeerd naar een parallellogram (rood) en het beletselteken (blauw) wordt getransformeerd om in het getransformeerde parallellogram te passen. U ziet dat de onderkant van de rechthoek met een factor van twee keer de hoogte van de rechthoek wordt verplaatst (geslepen) in de x-as, waardoor het parallellogram wordt gevormd.

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

Opmerkingen

De transformatie die in deze methode wordt toegepast, is slechts een pure shear als een van de parameters 0 is. Wanneer de shearY factor 0 is toegepast op een rechthoek aan de oorsprong, verplaatst de transformatie de onderste rand horizontaal met shearX een keer de hoogte van de rechthoek. Wanneer de shearX factor 0 is, wordt de rechterrand verticaal verplaatst op shearY tijden de breedte van de rechthoek. Let op wanneer beide parameters niet nul zijn, omdat de resultaten moeilijk te voorspellen zijn. Als beide factoren bijvoorbeeld 1 zijn, is de transformatie enkelvoud (dus niet-omkeerbaar), waardoor het hele vlak naar één lijn wordt gesnijpt.

Van toepassing op

Shear(Single, Single, MatrixOrder)

Hiermee past u de opgegeven shearvector toe Matrix in de opgegeven volgorde.

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)

Parameters

shearX
Single

De horizontale schuiffactor.

shearY
Single

De verticale afschuiffactor.

order
MatrixOrder

Een MatrixOrder die de volgorde aangeeft (toevoegen of vooraf gaan) waarin de shear wordt toegepast.

Voorbeelden

Zie Shear(Single, Single)voor een voorbeeld.

Opmerkingen

De transformatie die in deze methode wordt toegepast, is slechts een pure shear als een van de parameters 0 is. Wanneer de shearY factor 0 is toegepast op een rechthoek aan de oorsprong, verplaatst de transformatie de onderste rand horizontaal met shearX een keer de hoogte van de rechthoek. Wanneer de shearX factor 0 is, wordt de rechterrand verticaal verplaatst op shearY tijden de breedte van de rechthoek. Let op wanneer beide parameters niet nul zijn, omdat de resultaten moeilijk te voorspellen zijn. Als beide factoren bijvoorbeeld 1 zijn, is de transformatie enkelvoud (dus niet-omkeerbaar), waardoor het hele vlak naar één lijn wordt gesnijpt.

Van toepassing op