Matrix.Shear 메서드

정의

기울이기 벡터를 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.

오버로드

Shear(Single, Single, MatrixOrder)

지정된 순서대로 지정된 기울이기 벡터를 이 Matrix에 적용합니다.

Shear(Single, Single)

기울이기 변환을 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.

Shear(Single, Single, MatrixOrder)

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

지정된 순서대로 지정된 기울이기 벡터를 이 Matrix에 적용합니다.

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

가로 기울이기 요소입니다.

shearY
Single

세로 기울이기 요소입니다.

order
MatrixOrder

기울이기가 적용되는 순서(뒤나 앞에 추가)를 지정하는 MatrixOrder입니다.

예제

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

설명

이 메서드에 적용된 변환은 매개 변수 중 하나가 0인 경우에만 순수 전단입니다. 원점의 사각형에 적용됩니다. 인수가 0이면 shearY 변환은 사각형 높이를 기준으로 아래쪽 가장자리를 가로로 shearX 이동합니다. 인수가 shearX 0이면 오른쪽 가장자리를 직사각형 너비의 시간별로 shearY 세로로 이동합니다. 결과가 예측하기 어렵기 때문에 두 매개 변수가 모두 0이 아닌 경우 주의해야 합니다. 예를 들어 두 요소가 모두 1인 경우 변환은 단일(따라서 반전할 수 없음)이며 전체 평면을 한 줄로 압착합니다.

적용 대상

Shear(Single, Single)

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

기울이기 변환을 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.

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

가로 기울이기 요소입니다.

shearY
Single

세로 기울이기 요소입니다.

예제

다음 코드 예제는 Windows Forms 사용하도록 설계되었으며 이벤트 개체인 이 Paint 필요합니다PaintEventArgse. 코드는 다음 작업을 수행합니다.

  • 크기 조정 변환을 적용하기 전에 녹색 펜을 사용하여 화면에 사각형을 그립니다.

  • Matrix 만들고 이를 사용하여 에 대한 세계 좌표 변환을 Graphics설정합니다.

  • 빨간색 펜을 사용하여 다른 사각형을 그립니다.

  • 파란색 펜을 사용하여 타원을 그립니다.

그 결과 녹색 사각형, 빨간색 병렬 프로그래밍 및 변형된 파란색 타원이 생성됩니다. 변환을 설정하기 전에 그린 녹색 사각형은 호출에 DrawRectangle 제공된 좌표를 직접 사용합니다. 다른 두 그림은 그리기 전에 변환됩니다. 사각형은 병렬 프로그래밍(빨간색)으로 변환되고 타원(파란색)은 변환된 병렬 프로그래밍에 맞게 변환됩니다. 사각형의 아래쪽이 x축에서 사각형 높이의 2배로 이동(전단)되므로 병렬 프로그래밍이 형성됩니다.

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인 경우에만 순수 전단입니다. 원점의 사각형에 적용됩니다. 인수가 0이면 shearY 변환은 사각형 높이를 기준으로 아래쪽 가장자리를 가로로 shearX 이동합니다. 인수가 shearX 0이면 오른쪽 가장자리를 직사각형 너비의 시간별로 shearY 세로로 이동합니다. 결과가 예측하기 어렵기 때문에 두 매개 변수가 모두 0이 아닌 경우 주의해야 합니다. 예를 들어 두 요소가 모두 1인 경우 변환은 단일(따라서 반전할 수 없음)이며 전체 평면을 한 줄로 압착합니다.

적용 대상