Matrix.Shear Método

Definición

Aplica el vector de recorte especificado a este objeto Matrix anteponiendo el vector de recorte.

Sobrecargas

Shear(Single, Single, MatrixOrder)

Aplica el vector de recorte especificado a esta Matrix en el orden especificado.

Shear(Single, Single)

Aplica el vector de recorte especificado a este objeto Matrix anteponiendo la transformación de recorte.

Shear(Single, Single, MatrixOrder)

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

Aplica el vector de recorte especificado a esta 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 recorte horizontal.

shearY
Single

Factor de recorte vertical.

order
MatrixOrder

MatrixOrder que especifica el orden (agregar o anteponer) en que se aplica el recorte.

Ejemplos

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

Comentarios

La transformación aplicada en este método es un corte puro solo si uno de los parámetros es 0. Se aplica 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. Precaución es 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

Aplica el vector de recorte especificado a este objeto Matrix anteponiendo la transformación de recorte.

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 recorte horizontal.

shearY
Single

Factor de recorte vertical.

Ejemplos

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

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

  • Crea un Matrix objeto y 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 transformada. 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 paralelismo (rojo) y la elipse (azul) se transforma para ajustarse al paralelismo transformado. Observe que la parte inferior del rectángulo se mueve (escallado) 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 corte puro solo si uno de los parámetros es 0. Se aplica 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. Precaución es 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