Matrix Struktur

Definisi

Mewakili matriks transformasi affine 3 × 3 yang digunakan untuk transformasi dalam ruang dua dimensi.

public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
Warisan
Matrix
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Contoh XAML ini mendefinisikan Matriks yang menyediakan data untuk MatrixTransform yang diterapkan ke bentuk persegi panjang. Dalam hal ini, matriks menggabungkan offset (OffsetX dan OffsetY) dan condong (M12). Perhatikan bahwa efek yang sama ini dapat dihasilkan dengan menggabungkan TranslateTransform dan SkewTransform. Apakah menggunakan Matriks tunggal atau kombinasi transformasi diskrit adalah masalah gaya pengodean; hasilnya identik.

<Rectangle Width="100" Height="100" Fill="Red">
    <Rectangle.RenderTransform>
        <MatrixTransform Matrix="1,0,0,1,200,0">
        </MatrixTransform>
    </Rectangle.RenderTransform>
</Rectangle>

Keterangan

Matriks 3×3 digunakan untuk transformasi dalam bidang x-y dua dimensi. Matriks transformasi afin dapat dikalikan untuk membentuk sejumlah transformasi linier, seperti rotasi dan condong (geser), diikuti dengan terjemahan. Matriks transformasi affine memiliki kolom akhir yang sama dengan (0, 0, 1), sehingga hanya anggota di dua kolom pertama yang perlu ditentukan. Perhatikan bahwa vektor dinyatakan sebagai vektor baris, bukan vektor kolom.

Matriks disimpan menggunakan urutan utama baris dan memiliki struktur berikut:

M11M120
M21M220
OffsetXOffsety1

Anggota di baris terakhir, OffsetX dan OffsetY, mewakili nilai terjemahan.

Dalam metode dan properti, matriks transformasi biasanya ditentukan sebagai vektor dengan hanya enam anggota, sebagai berikut: (M11, M12, M21, M22, OffsetX, OffsetY)

Meskipun Anda dapat menggunakan struktur Matriks secara langsung untuk menerjemahkan titik individual, atau dengan MatrixTransform untuk mengubah objek, Windows Runtime juga menyediakan sekumpulan kelas yang dapat mengubah objek tanpa bekerja langsung dengan matriks:

Properti Matriks dapat dianimasikan (sebagai satu atau beberapa animasi DoubleAnimation atau DoubleAnimationUsingKeyFrames).

Matriks adalah nilai properti untuk properti MatrixTransform.Matrix . Jenis terkait dapat digunakan untuk matriks transformasi dalam ruang tiga dimensi lalu digunakan untuk proyeksi. Lihat Matrix3D dan Matrix3DProjection.

Proyeksi bahasa dan anggota Matriks

Jika Anda menggunakan bahasa Microsoft .NET (C# atau Microsoft Visual Basic), atau di ekstensi komponen Visual C++ (C++/CX) maka Matriks memiliki anggota non-data yang tersedia, dan anggota datanya diekspos sebagai properti baca-tulis, bukan bidang.

Jika Anda memprogram dengan C++ menggunakan Pustaka Templat Runtime Windows (WRL), maka hanya bidang anggota data yang ada sebagai anggota Matriks, dan Anda tidak dapat menggunakan metode utilitas atau properti yang tercantum dalam tabel anggota. Kode WRL dapat mengakses metode utilitas serupa yang ada di kelas MatrixHelper .

Bidang

M11

Nilai baris pertama dan kolom pertama dari struktur Matriks ini.

M12

Nilai baris pertama dan kolom kedua dari struktur Matriks ini.

M21

Nilai baris kedua dan kolom pertama dari struktur Matriks ini.

M22

Nilai baris kedua dan kolom kedua dari struktur Matriks ini.

OffsetX

Mendapatkan atau mengatur nilai baris ketiga dan kolom pertama dari struktur Matriks ini.

OffsetY

Mendapatkan atau mengatur nilai baris ketiga dan kolom kedua dari struktur Matriks ini.

Berlaku untuk