Bagikan melalui


Matrix.Shear Metode

Definisi

Menerapkan vektor shear yang ditentukan ke Matrix ini dengan menambahkan vektor shear terlebih dahulu.

Overload

Shear(Single, Single, MatrixOrder)

Menerapkan vektor shear yang ditentukan ke Matrix ini dalam urutan yang ditentukan.

Shear(Single, Single)

Menerapkan vektor shear yang ditentukan ke Matrix ini dengan prepending transformasi shear.

Shear(Single, Single, MatrixOrder)

Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs

Menerapkan vektor shear yang ditentukan ke Matrix ini dalam urutan yang ditentukan.

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)

Parameter

shearX
Single

Faktor geser horizontal.

shearY
Single

Faktor geser vertikal.

order
MatrixOrder

MatrixOrder yang menentukan urutan (tambahkan atau prepend) tempat shear diterapkan.

Contoh

Misalnya, lihat Shear(Single, Single).

Keterangan

Transformasi yang diterapkan dalam metode ini adalah shear murni hanya jika salah satu parameter adalah 0. Diterapkan ke persegi panjang pada asal, ketika faktor shearY adalah 0, transformasi memindahkan tepi bawah secara horizontal dengan shearX kali tinggi persegi panjang. Ketika faktor shearX adalah 0, faktor tersebut memindahkan tepi kanan secara vertikal dengan shearY kali lebar persegi panjang. Perhatian berurutan ketika kedua parameter bukan nol, karena hasilnya sulit diprediksi. Misalnya, jika kedua faktor adalah 1, transformasinya tunggal (karenanya tidak dapat diverifikasi), peras seluruh bidang ke satu baris.

Berlaku untuk

Shear(Single, Single)

Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs
Sumber:
Matrix.cs

Menerapkan vektor shear yang ditentukan ke Matrix ini dengan prepending transformasi shear.

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)

Parameter

shearX
Single

Faktor geser horizontal.

shearY
Single

Faktor geser vertikal.

Contoh

Contoh kode berikut dirancang untuk digunakan dengan Windows Forms, dan memerlukan PaintEventArgse, objek peristiwa Paint. Kode melakukan tindakan berikut:

  • Menggambar persegi panjang ke layar, menggunakan pena hijau, sebelum menerapkan transformasi penskala.

  • Membuat Matrix dan menggunakannya untuk mengatur transformasi koordinat dunia untuk Graphics.

  • Menggambar persegi panjang lain menggunakan pena merah.

  • Menggambar elips menggunakan pena biru.

Hasilnya adalah persegi panjang hijau, paralelogram merah dan elips biru yang diubah. Perhatikan bahwa persegi panjang hijau (digambar sebelum mengatur transformasi) secara langsung menggunakan koordinat yang disediakan dalam panggilan DrawRectangle. Dua angka lainnya diubah sebelum menggambar. Persegi panjang diubah menjadi parallelogram (merah), dan elips (biru) diubah agar sesuai dengan parallelogram yang diubah. Perhatikan bagian bawah persegi panjang dipindahkan (dipotong) di sumbu x dengan faktor dua kali tinggi persegi panjang, sehingga membentuk parallelogram.

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

Keterangan

Transformasi yang diterapkan dalam metode ini adalah shear murni hanya jika salah satu parameter adalah 0. Diterapkan ke persegi panjang pada asal, ketika faktor shearY adalah 0, transformasi memindahkan tepi bawah secara horizontal dengan shearX kali tinggi persegi panjang. Ketika faktor shearX adalah 0, faktor tersebut memindahkan tepi kanan secara vertikal dengan shearY kali lebar persegi panjang. Perhatian berurutan ketika kedua parameter bukan nol, karena hasilnya sulit diprediksi. Misalnya, jika kedua faktor adalah 1, transformasinya tunggal (karenanya tidak dapat diverifikasi), peras seluruh bidang ke satu baris.

Berlaku untuk