Matrix.Shear メソッド

定義

傾斜ベクターを前に付加することで、指定した傾斜ベクターをこの Matrix に適用します。

オーバーロード

Shear(Single, Single, MatrixOrder)

指定した順序で、指定した傾斜ベクターをこの Matrix に適用します。

Shear(Single, Single)

傾斜変換を前に付加することで、指定した傾斜ベクターをこの Matrix に適用します。

Shear(Single, Single, MatrixOrder)

ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
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)」を参照してください。

注釈

このメソッドで適用される変換は、パラメーターの 1 つが 0 の場合にのみ純粋なせん断です。 原点の四角形に適用され、係数が 0 の場合 shearY 、変換は四角形の高さを倍にして shearX 下端を水平方向に移動します。 係数が shearX 0 の場合、四角形の幅の倍だけ shearY 右端が垂直方向に移動します。 両方のパラメーターが 0 以外の場合は、結果の予測が困難であるため、注意が必要です。 たとえば、両方の因子が 1 の場合、変換は単数形 (したがって変換不可) であり、平面全体を 1 本の線に絞り込んでいます。

適用対象

Shear(Single, Single)

ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
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 フォームで使用するように設計されており、イベント オブジェクトがPaint必要PaintEventArgseです。 このコードでは、次のアクションが実行されます。

  • スケーリング変換を適用する前に、緑色のペンを使用して画面に四角形を描画します。

  • Matrix 作成し、それを使用して のワールド座標変換を設定します Graphics

  • 赤いペンを使用して別の四角形を描画します。

  • 青いペンを使用して楕円を描画します。

結果は、緑色の四角形、赤い平行四辺形、および変換された青い楕円です。 (変換を設定する前に描画される) 緑色の四角形は、呼び出しで指定された座標を DrawRectangle 直接使用していることに注意してください。 他の 2 つの図形は、描画前に変換されます。 四角形は平行四辺形 (赤) に変換され、楕円 (青) は変換された平行四辺形に合わせて変換されます。 四角形の下部が 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

注釈

このメソッドで適用される変換は、パラメーターの 1 つが 0 の場合にのみ純粋なせん断です。 原点の四角形に適用され、係数が 0 の場合 shearY 、変換は四角形の高さを倍にして shearX 下端を水平方向に移動します。 係数が shearX 0 の場合、四角形の幅の倍だけ shearY 右端が垂直方向に移動します。 両方のパラメーターが 0 以外の場合は、結果の予測が困難であるため、注意が必要です。 たとえば、両方の因子が 1 の場合、変換は単数形 (したがって変換不可) であり、平面全体を 1 本の線に絞り込んでいます。

適用対象