Matrix.Shear Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.