共用方式為


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 Forms 搭配使用,而且需要 PaintEventArgsePaint 事件物件。 程式代碼會執行下列動作:

  • 在套用縮放轉換之前,先使用綠色畫筆將矩形繪製到畫面。

  • 建立 Matrix,並用它來設定 Graphics的世界座標轉換。

  • 使用紅色畫筆繪製另一個矩形。

  • 使用藍色畫筆繪製橢圓形。

結果是綠色矩形、紅色平行投影和已轉換的藍色橢圓形。 請注意,綠色矩形(在設定轉換之前繪製)會直接使用 DrawRectangle 呼叫中提供的座標。 其他兩個數位會在繪製之前進行轉換。 矩形會轉換成平行方圖(紅色),而橢圓形(藍色)則會轉換成適合已轉換的平行投影。 請注意,矩形的底部會以矩形高度的兩倍乘以 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

備註

只有在其中一個參數為 0 時,這個方法中套用的轉換是純剪。 套用至原點的矩形,當 shearY 因數為0時,轉換會水平移動下邊緣,shearX 矩形的高度。 當 shearX 因數為 0 時,它會垂直移動右邊緣,shearY 矩形寬度的倍數。 當這兩個參數都是非零值時,請小心,因為結果很難預測。 例如,如果這兩個因素都是 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)

備註

只有在其中一個參數為 0 時,這個方法中套用的轉換是純剪。 套用至原點的矩形,當 shearY 因數為0時,轉換會水平移動下邊緣,shearX 矩形的高度。 當 shearX 因數為 0 時,它會垂直移動右邊緣,shearY 矩形寬度的倍數。 當這兩個參數都是非零值時,請小心,因為結果很難預測。 例如,如果這兩個因素都是 1,則轉換是單一的(因此不可反轉的),會將整個平面擠壓成單行。

適用於