Matrix.Shear 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
藉由預先規劃的分歧向量,將指定的分歧向量套用至這個 Matrix。
多載
Shear(Single, Single, MatrixOrder) |
依據指定的順序,將指定的切變向量套用至這個 Matrix。 |
Shear(Single, Single) |
藉由預先規劃切變轉換,將指定的切變向量套用至這個 Matrix。 |
Shear(Single, Single, MatrixOrder)
- 來源:
- 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 時,這個方法中套用的轉換是單純的剪除。 套用至原點的矩形,當因數為0時 shearY
,轉換會依矩形的高度水平 shearX
移動下邊緣。 shearX
當因數為 0 時,它會以矩形的寬度垂直shearY
移動右邊緣。 當兩個參數都是非零時,請小心,因為結果很難預測。 例如,如果這兩個因素都是 1,則轉換是單一 (因此無法反轉的) ,將整個平面分割成單一線條。
適用於
Shear(Single, Single)
- 來源:
- 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 提供的座標) 。 其他兩個圖表會在繪圖之前轉換。 矩形會轉換成平行投影 (紅色) ,而橢圓形 (藍色) 會轉換成轉換的平行投影。 請注意,矩形底部會以兩倍的矩形高度來移動 (交叉) ,因而形成平行投影。
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 時,這個方法中套用的轉換是單純的剪除。 套用至原點的矩形,當因數為0時 shearY
,轉換會依矩形的高度水平 shearX
移動下邊緣。 shearX
當因數為 0 時,它會以矩形的寬度垂直shearY
移動右邊緣。 當兩個參數都是非零時,請小心,因為結果很難預測。 例如,如果這兩個因素都是 1,則轉換是單一 (因此無法反轉的) ,將整個平面分割成單一線條。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應