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 prepending the shear vector.
Sobrecargas
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)
- 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
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.