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.

적용 대상