Matrix.Shear Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.