Sdílet prostřednictvím


Matrix.Shear Metoda

Definice

Použije na tento Matrix zadaný vektor shear tím, že předzálohuje shear vector.

Přetížení

Shear(Single, Single)

Použije na tento Matrix zadaný vektor shear tím, že předsadí smykovou transformaci.

Shear(Single, Single, MatrixOrder)

Použije zadaný shear vector na tento Matrix v zadaném pořadí.

Shear(Single, Single)

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

Použije na tento Matrix zadaný vektor shear tím, že předsadí 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

Vodorovný shear factor.

shearY
Single

Svislý shear factor.

Příklady

Následující příklad kódu je určen pro použití s Windows Forms a vyžaduje PaintEventArgse, Paint objekt události. Kód provede následující akci:

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

  • Vytvoří Matrix a použije ho k nastavení světové souřadnicové transformace pro Graphics.

  • Nakreslí jiný obdélník pomocí červeného pera.

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

Výsledkem je zelený obdélník, červený paralelogram a transformovaný modrý symbol tří teček. Všimněte si, že zelený obdélník (nakreslený před nastavením transformace) přímo používá souřadnice zadané v DrawRectangle volání. Ostatní dva obrázky se před kreslením transformují. Obdélník se transformuje na paralelogram (červený) a tři tečky (modrá) se transformují tak, aby se vešly do transformovaného paralelogramu. Všimněte si, že dolní část obdélníku se přesune (vysunutá) na ose x faktorem dvounásobku výšky obdélníku, čímž vznikne paralelogram.

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ě shear pouze v případě, že jeden z parametrů je 0. Použije se u obdélníku na počátku, pokud je shearY faktor 0, transformace posune dolní okraj vodorovně o shearX krát výšku obdélníku. Když je shearX faktor 0, posune pravý okraj svisle shearY krát šířku obdélníku. Upozornění je v pořadí, pokud jsou oba parametry nenulové, protože výsledky jsou obtížné předpovědět. Pokud jsou například oba faktory 1, transformace je jednotné (proto neinvertitelné), vynutí celou rovinu na jednu čáru.

Platí pro

Shear(Single, Single, MatrixOrder)

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

Použije zadaný shear vector na tento Matrix v 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

Vodorovný shear factor.

shearY
Single

Svislý shear factor.

order
MatrixOrder

MatrixOrder, která určuje pořadí (připojení nebo předpend), ve kterém se použije shear.

Příklady

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

Poznámky

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

Platí pro