Matrix.Shear Metoda

Definicja

Stosuje do tego Matrix określony wektor szżyciarski, poprzedzając wektor szżyciarski.

Przeciążenia

Shear(Single, Single, MatrixOrder)

Stosuje określony wektor odłania do tego Matrix w określonej kolejności.

Shear(Single, Single)

Stosuje określony Matrix wektor odłania, poprzedzając przekształcenie szżyciarza.

Shear(Single, Single, MatrixOrder)

Stosuje określony wektor odłania do tego Matrix w określonej kolejności.

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

Poziomy współczynnik sznania.

shearY
Single

Pionowy współczynnik sznania.

order
MatrixOrder

Element MatrixOrder określający kolejność (dołączanie lub poprzedzanie), w której zastosowano ścinanie.

Przykłady

Aby zapoznać się z przykładem, zobacz Shear(Single, Single).

Uwagi

Przekształcenie zastosowane w tej metodzie jest czystym ścinakiem tylko wtedy, gdy jeden z parametrów ma wartość 0. Zastosowano do prostokąta na początku, gdy shearY współczynnik wynosi 0, transformacja przesuwa dolną krawędź w poziomie o shearX razy wysokość prostokąta. Gdy shearX współczynnik wynosi 0, przesuwa prawą krawędź w pionie o shearY razy szerokość prostokąta. Ostrożność jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki mają wartość 1, przekształcenie jest pojedyncze (stąd niezamierzalne), ściskając całą płaszczyznę do pojedynczej linii.

Dotyczy

Shear(Single, Single)

Stosuje określony Matrix wektor odłania, poprzedzając przekształcenie szżyciarza.

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

Poziomy współczynnik sznania.

shearY
Single

Pionowy współczynnik sznania.

Przykłady

Poniższy przykład kodu jest przeznaczony do użytku z Windows Forms i wymaga PaintEventArgseobiektu Paint zdarzenia . Kod wykonuje następującą akcję:

  • Rysuje prostokąt na ekranie przy użyciu zielonego pióra przed zastosowaniem przekształcenia skalowania.

  • Tworzy obiekt Matrix i używa go do ustawiania przekształcenia współrzędnych świata dla obiektu Graphics.

  • Rysuje kolejny prostokąt przy użyciu czerwonego pióra.

  • Rysuje wielokropek za pomocą niebieskiego pióra.

Wynikiem jest zielony prostokąt, czerwony równoległogram i przekształcony niebieski wielokropek. Zwróć uwagę, że zielony prostokąt (rysowany przed ustawieniem przekształcenia) bezpośrednio używa współrzędnych podanych w wywołaniu DrawRectangle . Pozostałe dwie liczby są przekształcane przed rysowaniem. Prostokąt jest przekształcany na równoległy (czerwony), a wielokropek (niebieski) jest przekształcany w celu dopasowania do przekształconego równoległegoogramu. Zwróć uwagę, że dolna część prostokąta jest przenoszona (sznana) na osi x przez współczynnik dwóch razy więcej niż wysokość prostokąta, tworząc w ten sposób równoległyogram.

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

Uwagi

Przekształcenie zastosowane w tej metodzie jest czystym ścinakiem tylko wtedy, gdy jeden z parametrów ma wartość 0. Zastosowano do prostokąta na początku, gdy shearY współczynnik wynosi 0, transformacja przesuwa dolną krawędź w poziomie o shearX razy wysokość prostokąta. Gdy shearX współczynnik wynosi 0, przesuwa prawą krawędź w pionie o shearY razy szerokość prostokąta. Ostrożność jest w porządku, gdy oba parametry są niezerowe, ponieważ wyniki są trudne do przewidzenia. Jeśli na przykład oba czynniki mają wartość 1, przekształcenie jest pojedyncze (stąd niezamierzalne), ściskając całą płaszczyznę do pojedynczej linii.

Dotyczy