Matrix.Shear 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通过附加剪切向量将指定的剪切向量应用于此 Matrix。
重载
Shear(Single, Single) |
通过追加剪切转换,将指定的剪切向量应用于此 Matrix。 |
Shear(Single, Single, MatrixOrder) |
按指定顺序将此剪切向量应用于此 Matrix。 |
Shear(Single, Single)
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- 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 窗体一起使用,它需要 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
。 当 shearX
因子为 0 时,它将右边缘垂直移动 shearY
矩形宽度的 shearY
倍。 当这两个参数都是非零时,警告是有条不紊的,因为结果很难预测。 例如,如果这两个因素均为 1,则转换是单一的(因此不可逆),将整个平面挤压为一条线。
适用于
Shear(Single, Single, MatrixOrder)
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- Matrix.cs
- Source:
- 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
。 当 shearX
因子为 0 时,它将右边缘垂直移动 shearY
矩形宽度的 shearY
倍。 当这两个参数都是非零时,警告是有条不紊的,因为结果很难预测。 例如,如果这两个因素均为 1,则转换是单一的(因此不可逆),将整个平面挤压为一条线。