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 Forms 搭配使用,而且需要 PaintEventArgse
Paint 事件物件。 程式代碼會執行下列動作:
結果是綠色矩形、紅色平行投影和已轉換的藍色橢圓形。 請注意,綠色矩形(在設定轉換之前繪製)會直接使用 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,則轉換是單一的(因此不可反轉的),會將整個平面擠壓成單行。