Matrix.Shear Método

Definición

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

Sobrecargas

Nombre Description
Shear(Single, Single)

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

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.

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 y Matrix lo usa para establecer una transformación de coordenadas del mundo para .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 DrawRectangle llamada. 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 shearY factor es 0, la transformación mueve el borde inferior horizontalmente por shearX el alto del rectángulo. Cuando el shearX factor es 0, mueve verticalmente el borde derecho por 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, MatrixOrder)

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

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

Ejemplos

Para obtener un ejemplo, consulte 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 shearY factor es 0, la transformación mueve el borde inferior horizontalmente por shearX el alto del rectángulo. Cuando el shearX factor es 0, mueve verticalmente el borde derecho por 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