Matrix.Shear Yöntem

Tanım

Kesme vektörlerini önceden kaldırarak belirtilen kesme vektörlerini buna Matrix uygular.

Aşırı Yüklemeler

Shear(Single, Single, MatrixOrder)

Belirtilen kesme vektörlerini belirtilen sırada buna Matrix uygular.

Shear(Single, Single)

Kesme dönüştürmesini önceden kaldırarak belirtilen kesme vektörlerini buna Matrix uygular.

Shear(Single, Single, MatrixOrder)

Kaynak:
Matrix.cs
Kaynak:
Matrix.cs
Kaynak:
Matrix.cs

Belirtilen kesme vektörlerini belirtilen sırada buna Matrix uygular.

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)

Parametreler

shearX
Single

Yatay kesme faktörü.

shearY
Single

Dikey kesme faktörü.

order
MatrixOrder

MatrixOrder Kesmenin uygulandığı sırayı (ekleme veya dik) belirten bir.

Örnekler

Örnek için bkz. Shear(Single, Single)

Açıklamalar

Bu yöntemde uygulanan dönüştürme, yalnızca parametrelerden biri 0 olduğunda saf bir kesme işlemidir. Çıkış noktasındaki bir dikdörtgene uygulanırsa, faktör 0 olduğunda shearY dönüştürme, alt kenarı dikdörtgenin yüksekliğine göre yatay olarak shearX taşır. shearX Faktör 0 olduğunda, sağ kenarı dikdörtgenin genişliğini çarpı çarpı dikey olarak shearY taşır. Her iki parametre de sıfırdan farklı olduğunda dikkatli olun çünkü sonuçları tahmin etmek zordur. Örneğin, her iki faktör de 1 ise, dönüştürme tekildir (dolayısıyla tersinemez) ve düzlemin tamamını tek bir satıra sıkıştırılır.

Şunlara uygulanır

Shear(Single, Single)

Kaynak:
Matrix.cs
Kaynak:
Matrix.cs
Kaynak:
Matrix.cs

Kesme dönüştürmesini önceden kaldırarak belirtilen kesme vektörlerini buna Matrix uygular.

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)

Parametreler

shearX
Single

Yatay kesme faktörü.

shearY
Single

Dikey kesme faktörü.

Örnekler

Aşağıdaki kod örneği Windows Forms ile kullanılmak üzere tasarlanmıştır ve bir Paint olay nesnesi gerektirir.PaintEventArgse Kod aşağıdaki eylemi gerçekleştirir:

  • Ölçeklendirme dönüşümü uygulamadan önce yeşil kalem kullanarak ekrana dikdörtgen çizer.

  • oluşturur Matrix ve bunu kullanarak için Graphicsbir dünya koordinatı dönüşümü ayarlar.

  • Kırmızı kalem kullanarak başka bir dikdörtgen çizer.

  • Mavi kalem kullanarak bir elips çizer.

Sonuç yeşil dikdörtgen, kırmızı paralelogram ve dönüştürülmüş mavi elipstir. Yeşil dikdörtgenin (dönüşümü ayarlamadan önce çizilmiş) doğrudan çağrıda sağlanan koordinatları kullandığına DrawRectangle dikkat edin. Diğer iki şekil çizim öncesinde dönüştürülür. Dikdörtgen paralelograma (kırmızı) dönüştürülür ve üç nokta (mavi) dönüştürülmüş paralelograma sığacak şekilde dönüştürülür. Dikdörtgenin alt kısmının x ekseninde dikdörtgenin yüksekliğinin iki katı kadar bir faktörle taşındığına (yaslandığına) ve dolayısıyla paralelogramın oluştuğuna dikkat edin.

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

Açıklamalar

Bu yöntemde uygulanan dönüştürme, yalnızca parametrelerden biri 0 olduğunda saf bir kesme işlemidir. Çıkış noktasındaki bir dikdörtgene uygulanırsa, faktör 0 olduğunda shearY dönüştürme, alt kenarı dikdörtgenin yüksekliğine göre yatay olarak shearX taşır. shearX Faktör 0 olduğunda, sağ kenarı dikdörtgenin genişliğini çarpı çarpı dikey olarak shearY taşır. Her iki parametre de sıfırdan farklı olduğunda dikkatli olun çünkü sonuçları tahmin etmek zordur. Örneğin, her iki faktör de 1 ise, dönüştürme tekildir (dolayısıyla tersinemez) ve düzlemin tamamını tek bir satıra sıkıştırılır.

Şunlara uygulanır