Compartilhar via


Matrix.Shear Método

Definição

Aplica o vetor de tesoura especificado a esse Matrix, acrescentando o vetor de tesoura.

Sobrecargas

Shear(Single, Single)

Aplica o vetor de tesoura especificado a esse Matrix, acrescentando a transformação de tesoura.

Shear(Single, Single, MatrixOrder)

Aplica o vetor de tesoura especificado a esse Matrix na ordem especificada.

Shear(Single, Single)

Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs

Aplica o vetor de tesoura especificado a esse Matrix, acrescentando a transformação de tesoura.

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)

Parâmetros

shearX
Single

O fator de tesoura horizontal.

shearY
Single

O fator de tesoura vertical.

Exemplos

O exemplo de código a seguir foi projetado para uso com o Windows Forms e requer PaintEventArgse, um objeto de evento Paint. O código executa a seguinte ação:

  • Desenha um retângulo na tela, usando uma caneta verde, antes de aplicar uma transformação de dimensionamento.

  • Cria um Matrix e o usa para definir uma transformação de coordenadas mundiais para o Graphics.

  • Desenha outro retângulo usando uma caneta vermelha.

  • Desenha uma reticência usando uma caneta azul.

O resultado é um retângulo verde, um paralelismo vermelho e uma elipse azul transformada. Observe que o retângulo verde (desenhado antes de definir a transformação) usa diretamente as coordenadas fornecidas na chamada DrawRectangle. As outras duas figuras são transformadas antes do desenho. O retângulo é transformado em um parallelogram (vermelho) e a elipse (azul) é transformada para caber no parallelogram transformado. Observe que a parte inferior do retângulo é movida (desarmada) no eixo x por um fator de duas vezes a altura do retângulo, formando assim o parallelogram.

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

Comentários

A transformação aplicada nesse método é uma tesoura pura somente se um dos parâmetros for 0. Aplicada a um retângulo na origem, quando o fator shearY é 0, a transformação move a borda inferior horizontalmente shearX vezes a altura do retângulo. Quando o fator shearX é 0, ele move a borda direita verticalmente shearY vezes a largura do retângulo. A cautela está em ordem quando ambos os parâmetros não são zero, pois os resultados são difíceis de prever. Por exemplo, se ambos os fatores forem 1, a transformação será singular (portanto, não inverterível), espremendo todo o plano para uma única linha.

Aplica-se a

Shear(Single, Single, MatrixOrder)

Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs

Aplica o vetor de tesoura especificado a esse Matrix na ordem especificada.

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)

Parâmetros

shearX
Single

O fator de tesoura horizontal.

shearY
Single

O fator de tesoura vertical.

order
MatrixOrder

Um MatrixOrder que especifica a ordem (acrescentar ou acrescentar) na qual a tesoura é aplicada.

Exemplos

Para obter um exemplo, consulte Shear(Single, Single).

Comentários

A transformação aplicada nesse método é uma tesoura pura somente se um dos parâmetros for 0. Aplicada a um retângulo na origem, quando o fator shearY é 0, a transformação move a borda inferior horizontalmente shearX vezes a altura do retângulo. Quando o fator shearX é 0, ele move a borda direita verticalmente shearY vezes a largura do retângulo. A cautela está em ordem quando ambos os parâmetros não são zero, pois os resultados são difíceis de prever. Por exemplo, se ambos os fatores forem 1, a transformação será singular (portanto, não inverterível), espremendo todo o plano para uma única linha.

Aplica-se a