Matrix.Shear Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan vektor shear yang ditentukan ke Matrix ini dengan menambahkan vektor shear terlebih dahulu.
Overload
Shear(Single, Single) |
Menerapkan vektor shear yang ditentukan ke Matrix ini dengan prepending transformasi shear. |
Shear(Single, Single, MatrixOrder) |
Menerapkan vektor shear yang ditentukan ke Matrix ini dalam urutan yang ditentukan. |
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
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.