다음을 통해 공유


Matrix.Shear 메서드

정의

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

오버로드

Shear(Single, Single)

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

Shear(Single, Single, MatrixOrder)

지정된 전단 벡터를 지정된 순서로 이 Matrix 적용합니다.

Shear(Single, Single)

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

적용 대상

Shear(Single, Single, MatrixOrder)

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

적용 대상