Compartir a través de


Matrix.Shear Método

Definición

Aplica el vector de corte especificado a este Matrix prepending the shear vector.

Sobrecargas

Shear(Single, Single, MatrixOrder)

Aplica el vector de corte especificado a este Matrix en el orden especificado.

Shear(Single, Single)

Aplica el vector de corte especificado a este Matrix prepending la transformación de corte.

Shear(Single, Single, MatrixOrder)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

Aplica el vector de corte especificado a este Matrix en el orden especificado.

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

Factor de eslación horizontal.

shearY
Single

Factor de eslazamiento vertical.

order
MatrixOrder

Un MatrixOrder que especifica el orden (anexar o anteponer) en el que se aplica el desenlazadora.

Ejemplos

Para obtener un ejemplo, vea Shear(Single, Single).

Comentarios

La transformación aplicada en este método es un shear puro solo si uno de los parámetros es 0. Aplicado a un rectángulo en el origen, cuando el factor de shearY es 0, la transformación mueve horizontalmente el borde inferior shearX el alto del rectángulo. Cuando el factor de shearX es 0, mueve el borde derecho verticalmente shearY el ancho del rectángulo. La precaución está en orden cuando ambos parámetros no son cero, ya que los resultados son difíciles de predecir. Por ejemplo, si ambos factores son 1, la transformación es singular (por lo tanto no invertible), apretar todo el plano a una sola línea.

Se aplica a

Shear(Single, Single)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

Aplica el vector de corte especificado a este Matrix prepending la transformación de corte.

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

Factor de eslación horizontal.

shearY
Single

Factor de eslazamiento vertical.

Ejemplos

El ejemplo de código siguiente está diseñado para su uso con Windows Forms y requiere PaintEventArgse, un objeto de evento Paint. El código realiza la siguiente acción:

  • Dibuja un rectángulo en la pantalla, utilizando un lápiz verde, antes de aplicar una transformación de escalado.

  • Crea un Matrix y lo usa para establecer una transformación de coordenadas del mundo para el Graphics.

  • Dibuja otro rectángulo con un lápiz rojo.

  • Dibuja una elipse con un lápiz azul.

El resultado es un rectángulo verde, un paralelismo rojo y una elipse azul transformado. Observe que el rectángulo verde (dibujado antes de establecer la transformación) usa directamente las coordenadas proporcionadas en la llamada a DrawRectangle. Las otras dos figuras se transforman antes de dibujar. El rectángulo se transforma en un paralelograma (rojo) y la elipse (azul) se transforma para ajustarse al paralelismo transformado. Observe que la parte inferior del rectángulo se mueve (descallado) en el eje X por un factor de dos veces la altura del rectángulo, formando así el paralelismo.

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

Comentarios

La transformación aplicada en este método es un shear puro solo si uno de los parámetros es 0. Aplicado a un rectángulo en el origen, cuando el factor de shearY es 0, la transformación mueve horizontalmente el borde inferior shearX el alto del rectángulo. Cuando el factor de shearX es 0, mueve el borde derecho verticalmente shearY el ancho del rectángulo. La precaución está en orden cuando ambos parámetros no son cero, ya que los resultados son difíciles de predecir. Por ejemplo, si ambos factores son 1, la transformación es singular (por lo tanto no invertible), apretar todo el plano a una sola línea.

Se aplica a