次の方法で共有


Matrix.Shear メソッド

定義

指定したせん断ベクトルをこの Matrix に適用するには、せん断ベクトルを事前に設定します。

オーバーロード

Shear(Single, Single)

せん断変換を前にして、指定したせん断ベクトルをこの Matrix に適用します。

Shear(Single, Single, MatrixOrder)

指定した順序で、指定したせん断ベクトルをこの Matrix に適用します。

Shear(Single, Single)

ソース:
Matrix.cs
ソース:
Matrix.cs
ソース:
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 つの図形は、描画前に変換されます。 四角形は平行四辺形 (赤) に変換され、楕円 (青) は変換された平行四辺形に合わせて変換されます。 四角形の下部が四角形の高さの 2 倍だけ x 軸に移動 (せん断) され、平行四辺形が形成されていることに注目してください。

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

適用対象

Shear(Single, Single, MatrixOrder)

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

適用対象