Matrix.Shear メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したせん断ベクトルをこの 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
が必要です。 このコードでは、次のアクションが実行されます。
スケーリング変換を適用する前に、緑色のペンを使用して画面に四角形を描画します。
赤いペンを使用して別の四角形を描画します。
青いペンを使用して楕円を描画します。
結果は、緑色の四角形、赤い平行四辺形、および変換された青い楕円です。 緑色の四角形 (変換を設定する前に描画) は、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 本の線に絞ります。
適用対象
.NET