Matrix.Shear 메서드

정의

기울이기 벡터를 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix by prepending the shear vector.

오버로드

Shear(Single, Single)

기울이기 변환을 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder)

지정된 순서대로 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix in the specified order.

Shear(Single, Single)

기울이기 변환을 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix by prepending the shear transformation.

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)

매개 변수

shearX
Single

가로 기울이기 요소입니다.The horizontal shear factor.

shearY
Single

세로 기울이기 요소입니다.The vertical shear factor.

예제

다음 코드 예제는 Windows Forms와 함께 사용 하도록 설계 되었으며 PaintEventArgs e , Paint 이벤트 개체가 필요 합니다.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an Paint event object. 코드는 다음 작업을 수행 합니다.The code performs the following action:

  • 크기 조정 변환을 적용 하기 전에 녹색 펜을 사용 하 여 화면에 사각형을 그립니다.Draws a rectangle to the screen, using a green pen, prior to applying a scaling transform.

  • 를 만들고 Matrix 이를 사용 하 여에 대 한 전역 좌표 변환을 설정 Graphics 합니다.Creates a Matrix and uses it to set a world-coordinate transform for the Graphics.

  • 빨간색 펜을 사용 하 여 다른 사각형을 그립니다.Draws another rectangle using a red pen.

  • 파란색 펜을 사용 하 여 타원을 그립니다.Draws an ellipse using a blue pen.

결과는 녹색 사각형, 빨강 평행 사변형 및 변환 된 파랑 타원입니다.The result is a green rectangle, a red parallelogram and a transformed, blue ellipse. 변형 설정 전에 그린 녹색 사각형은 호출에 제공 된 좌표를 직접 사용 합니다 DrawRectangle .Notice that the green rectangle (drawn prior to setting the transform) directly uses the coordinates supplied in the DrawRectangle call. 다른 두 그림은 그리기 전에 변환 됩니다.The other two figures are transformed prior to drawing. 사각형이 평행 사변형 (빨강)으로 변환 되 고 타원 (파랑)이 변환 된 평행 사변형에 맞게 변환 됩니다.The rectangle is transformed to a parallelogram (red), and the ellipse (blue) is transformed to fit into the transformed parallelogram. 사각형의 아래쪽은 x 축에서 사각형 높이의 두 배에 해당 하는 비율로 이동 하 여 평행 사변형을 형성 합니다.Notice the bottom of the rectangle is moved (sheared) in the x-axis by a factor of two times the height of the rectangle, thus forming the parallelogram.

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

설명

매개 변수 중 하나가 0 인 경우에만이 메서드에서 적용 되는 변환을 순수 기울이기로 사용할 수 있습니다.The transformation applied in this method is a pure shear only if one of the parameters is 0. 원점에서 사각형에 적용 되는 경우 shearY 요소가 0 이면 변환은 아래쪽 가장자리를 사각형의 높이 만큼 가로로 이동 합니다 shearX .Applied to a rectangle at the origin, when the shearY factor is 0, the transformation moves the bottom edge horizontally by shearX times the height of the rectangle. shearX요소가 0 인 경우 오른쪽 가장자리를 사각형의 너비 만큼 세로로 이동 shearY 합니다.When the shearX factor is 0, it moves the right edge vertically by shearY times the width of the rectangle. 두 매개 변수가 모두 0이 아닌 경우 결과를 예측 하기 어려운 경우 주의 해야 합니다.Caution is in order when both parameters are nonzero, because the results are hard to predict. 예를 들어 두 요소가 모두 1 인 경우에는 전체 평면을 한 줄로 전환 하는 단일 (비 반전할 수 있는) 변환이 단일 줄로 전환 됩니다.For example, if both factors are 1, the transformation is singular (hence noninvertible), squeezing the entire plane to a single line.

적용 대상

Shear(Single, Single, MatrixOrder)

지정된 순서대로 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix in the specified order.

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)

매개 변수

shearX
Single

가로 기울이기 요소입니다.The horizontal shear factor.

shearY
Single

세로 기울이기 요소입니다.The vertical shear factor.

order
MatrixOrder

기울이기가 적용되는 순서(뒤나 앞에 추가)를 지정하는 MatrixOrder입니다.A MatrixOrder that specifies the order (append or prepend) in which the shear is applied.

예제

예제를 보려면 Shear(Single, Single)를 참조하세요.For an example, see Shear(Single, Single).

설명

매개 변수 중 하나가 0 인 경우에만이 메서드에서 적용 되는 변환을 순수 기울이기로 사용할 수 있습니다.The transformation applied in this method is a pure shear only if one of the parameters is 0. 원점에서 사각형에 적용 되는 경우 shearY 요소가 0 이면 변환은 아래쪽 가장자리를 사각형의 높이 만큼 가로로 이동 합니다 shearX .Applied to a rectangle at the origin, when the shearY factor is 0, the transformation moves the bottom edge horizontally by shearX times the height of the rectangle. shearX요소가 0 인 경우 오른쪽 가장자리를 사각형의 너비 만큼 세로로 이동 shearY 합니다.When the shearX factor is 0, it moves the right edge vertically by shearY times the width of the rectangle. 두 매개 변수가 모두 0이 아닌 경우 결과를 예측 하기 어려운 경우 주의 해야 합니다.Caution is in order when both parameters are nonzero, because the results are hard to predict. 예를 들어 두 요소가 모두 1 인 경우에는 전체 평면을 한 줄로 전환 하는 단일 (비 반전할 수 있는) 변환이 단일 줄로 전환 됩니다.For example, if both factors are 1, the transformation is singular (hence noninvertible), squeezing the entire plane to a single line.

적용 대상