傾斜変換を前に付加することで、指定した傾斜ベクタをこの Matrix オブジェクトに適用します。
Overloads Public Sub Shear( _
ByVal shearX As Single, _ ByVal shearY As Single _)
[C#]
public void Shear(floatshearX,floatshearY);
[C++]
public: void Shear(floatshearX,floatshearY);
[JScript]
public function Shear(
shearX : float,shearY : float);
パラメータ
- shearX
水平方向の傾斜係数。 - shearY
垂直方向の傾斜係数。
解説
このメソッドで適用される変換は、パラメータの 1 つが 0 の場合に限って純粋な傾斜になります。 shearY 係数が 0 の場合は原点で四角形に適用され、四角形の高さの shearX 倍だけ底辺が水平方向に移動する変換になります。 shearX 係数が 0 の場合は、四角形の幅の shearY 倍だけ右辺が垂直方向に移動されます。両方のパラメータが 0 でない場合は、予測できない結果になるため注意が必要です。たとえば、両方の係数が 1 の場合、変換は特異なもの (反転不可) となり、平面全体が押しつぶされて単一の直線になります。
使用例
[Visual Basic, C#] 次の例は、Windows フォームでの使用を意図してデザインされており、 OnPaint イベントのオブジェクトである PaintEventArgs e が必要です。このコードでは次のアクションを実行します。
- スケーリングの変換を適用する前に、緑のペンを使用して画面に四角形を描画します。
- Matrix オブジェクトを作成し、それを使用してこの Graphics オブジェクトのワールド座標変換を設定します。
- 赤のペンを使用して、四角形をもう 1 つ描画します。
- 青のペンを使用して、楕円を描画します。
[Visual Basic, C#] その結果、緑の四角形、赤い平行四辺形、および変換された青い楕円が描画されます。緑の四角形 (変換の設定前に描画されたもの) は、 DrawRectangle メソッド呼び出しで得られた座標を直接使用します。ほかの 2 つの図形は、描画前に変換されます。四角形は平行四辺形 (赤) に変換され、楕円 (青) は変換された平行四辺形内部に収まるよう変換されます。四角形の底辺は、四角形の高さの 2 倍だけ x 軸方向に移動 (傾斜) された結果、平行四辺形になります。
Public Sub MatrixShearExample(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
[C#]
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);
}
[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン
をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
Matrix クラス | Matrix メンバ | System.Drawing.Drawing2D 名前空間 | Matrix.Shear オーバーロードの一覧