Matrix.Shear Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.