Matrix.Shear Metoda

Definice

Použije na to Matrix zadaný vektor smyku tak, že předsadí smykový vektor.

Přetížení

Shear(Single, Single, MatrixOrder)

Použije zadaný vektor smyku v Matrix zadaném pořadí.

Shear(Single, Single)

Použije na to Matrix zadaný vektor smyku tak, že předpenduje smykovou transformaci.

Shear(Single, Single, MatrixOrder)

Zdroj:
Matrix.cs
Zdroj:
Matrix.cs
Zdroj:
Matrix.cs

Použije zadaný vektor smyku v Matrix zadaném pořadí.

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)

Parametry

shearX
Single

Faktor vodorovného smyku.

shearY
Single

Faktor svislého smyku.

order
MatrixOrder

A MatrixOrder určující pořadí (připojení nebo předřazení), ve kterém se smyk použije.

Příklady

Příklad naleznete v tématu Shear(Single, Single).

Poznámky

Transformace použitá v této metodě je čistým smykem pouze v případě, že je jeden z parametrů 0. Použije se u obdélníku v počátku, když shearY je faktor 0, transformace posune dolní okraj vodorovně o shearX násobek výšky obdélníku. shearX Pokud je faktor 0, posune pravý okraj svisle o shearY násobek šířky obdélníku. Opatrnost je v pořadí, pokud jsou oba parametry nenulové, protože výsledky je obtížné předpovědět. Pokud jsou například oba faktory 1, transformace je v jednotném čísle (tedy neinvertovatelné) a stiskla celou rovinu na jednu čáru.

Platí pro

Shear(Single, Single)

Zdroj:
Matrix.cs
Zdroj:
Matrix.cs
Zdroj:
Matrix.cs

Použije na to Matrix zadaný vektor smyku tak, že předpenduje smykovou transformaci.

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)

Parametry

shearX
Single

Faktor vodorovného smyku.

shearY
Single

Faktor svislého smyku.

Příklady

Následující příklad kódu je navržený pro použití s model Windows Forms a vyžaduje PaintEventArgseobjekt Paint události . Kód provede následující akci:

  • Před použitím transformace měřítka nakreslí na obrazovku pomocí zeleného pera obdélník.

  • Matrix Vytvoří objekt a použije ho k nastavení transformace souřadnic světa pro objekt Graphics.

  • Nakreslí další obdélník pomocí červeného pera.

  • Nakreslí tři tečky pomocí modrého pera.

Výsledkem je zelený obdélník, červený rovnoběžník a transformovaná modrá elipsa. Všimněte si, že zelený obdélník (nakreslený před nastavením transformace) přímo používá souřadnice zadané ve DrawRectangle volání. Zbyly dvě postavy se transformují před nakreslením. Obdélník se transformuje na rovnoběžník (červený) a tři tečky (modrá) se transformují tak, aby se vešly do transformovaného rovnoběžníku. Všimněte si, že spodní část obdélníku se na ose x posune (zkrátí) dvojnásobnou výškou obdélníku, čímž vznikne rovnoběžník.

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

Poznámky

Transformace použitá v této metodě je čistým smykem pouze v případě, že je jeden z parametrů 0. Použije se u obdélníku v počátku, když shearY je faktor 0, transformace posune dolní okraj vodorovně o shearX násobek výšky obdélníku. shearX Pokud je faktor 0, posune pravý okraj svisle o shearY násobek šířky obdélníku. Opatrnost je v pořadí, pokud jsou oba parametry nenulové, protože výsledky je obtížné předpovědět. Pokud jsou například oba faktory 1, transformace je v jednotném čísle (tedy neinvertovatelné) a stiskla celou rovinu na jednu čáru.

Platí pro