Aracılığıyla paylaş


Matrix.Shear Yöntem

Tanım

Belirtilen kesme vektörlerini bu Matrix kesme vektörlerini önceden kaldırarak uygular.

Aşırı Yüklemeler

Shear(Single, Single, MatrixOrder)

Belirtilen kesme vektörlerini bu Matrix belirtilen sırayla uygular.

Shear(Single, Single)

Kesme dönüştürmesini önleyerek belirtilen kesme vektörlerini bu Matrix uygular.

Shear(Single, Single, MatrixOrder)

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

Belirtilen kesme vektörlerini bu Matrix belirtilen sırayla 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

Kesmenin uygulandığı sırayı (ekleme veya ön ek) belirten bir MatrixOrder.

Örnekler

Bir ö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. Kaynaktaki bir dikdörtgene uygulandığında, shearY faktörü 0 olduğunda dönüştürme, alt kenarı dikdörtgenin yüksekliğini shearX kat yatay olarak taşır. shearX faktörü 0 olduğunda, sağ kenarı dikdörtgenin genişliğinin shearY kat daha fazla dikey olarak hareket eder. 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 tüm düzlemi 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
Kaynak:
Matrix.cs
Kaynak:
Matrix.cs

Kesme dönüştürmesini önleyerek belirtilen kesme vektörlerini bu 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 Paint bir olay nesnesi PaintEventArgsegerektirir. Kod aşağıdaki eylemi gerçekleştirir:

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

  • bir Matrix oluşturur ve bunu kullanarak Graphicsiçin dünya koordinatlı bir dönüşüm ayarlar.

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

  • Mavi kalem kullanarak üç nokta çizer.

Sonuç yeşil dikdörtgen, kırmızı paralelkenar ve dönüştürülmüş mavi üç noktadır. Yeşil dikdörtgenin (dönüşümü ayarlamadan önce çizilmiş) doğrudan DrawRectangle çağrısında sağlanan koordinatları kullandığına dikkat edin. Diğer iki şekil çizimden önce 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 (kırpıldığından) ve paralelkenarı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. Kaynaktaki bir dikdörtgene uygulandığında, shearY faktörü 0 olduğunda dönüştürme, alt kenarı dikdörtgenin yüksekliğini shearX kat yatay olarak taşır. shearX faktörü 0 olduğunda, sağ kenarı dikdörtgenin genişliğinin shearY kat daha fazla dikey olarak hareket eder. 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 tüm düzlemi tek bir satıra sıkıştırılır.

Şunlara uygulanır