Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan efek transformasi 3D untuk menerapkan matriks transformasi 4x4 arbitrer ke gambar.
Efek ini menerapkan matriks (M?) yang Anda berikan ke sudut simpul gambar sumber ([ x y z 1 ]) menggunakan perhitungan ini:
[ xr yr zr 1 ]=[ x y z 1 ]*M?
CLSID untuk efek ini CLSID_D2D13DTransform.
Contoh gambar
| Sebelum |
|---|
|
| Sesudah |
|
ComPtr<ID2D1Effect> D2D13DTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D13DTransform, &D2D13DTransformEffect);
D2D13DTransformEffect->SetInput(0, bitmap);
// You can use the helper methods in D2D1::Matrix4x4F to create common matrix transformations.
D2D1_MATRIX_4X4_F matrix =
D2D1::Matrix4x4F::Translation(0.0f, -192.0f, 0.0f) *
D2D1::Matrix4x4F::RotationY(30.0f) *
D2D1::Matrix4x4F::Translation(0.0f, 192.0f, 0.0f);
D2D13DTransformEffect->SetValue(D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(D2D13DTransformEffect.Get());
m_d2dContext->EndDraw();
Properti efek
Mode interpolasi
| Enumerasi | Deskripsi |
|---|---|
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR | Sampel titik tunggal terdekat dan menggunakannya. Mode ini menggunakan lebih sedikit waktu pemrosesan, tetapi menghasilkan gambar kualitas terendah. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR | Menggunakan sampel empat titik dan interpolasi linier. Mode ini menggunakan lebih banyak waktu pemrosesan daripada mode tetangga terdekat, tetapi menghasilkan gambar berkualitas lebih tinggi. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC | Menggunakan 16 sampel kernel kubik untuk interpolasi. Mode ini menggunakan waktu pemrosesan terbanyak, tetapi menghasilkan gambar berkualitas lebih tinggi. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR | Menggunakan 4 sampel linier dalam satu piksel untuk anti-aliasing tepi yang baik. Mode ini baik untuk menurunkan skala dengan jumlah kecil pada gambar dengan beberapa piksel. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC | Menggunakan pemfilteran anisotropic untuk mengambil sampel pola sesuai dengan bentuk bitmap yang diubah. |
Nota
Jika Anda tidak memilih mode, efek akan default ke D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR.
Nota
Mode Anisotropic menghasilkan mipmap saat penskalaan, namun, jika Anda mengatur properti Cache ke true pada efek yang dimasukkan ke efek ini, mipmap tidak akan dihasilkan setiap kali untuk gambar yang cukup kecil.
Mode batas
| Nama | Deskripsi |
|---|---|
| D2D1_BORDER_MODE_SOFT | Efek mengalihkan gambar dengan piksel hitam transparan saat diinterpolasi, menghasilkan tepi lembut. |
| D2D1_BORDER_MODE_HARD | Efek menjepit output ke ukuran gambar input. |
Kelas Matriks Transformasi 4x4
Direct2D menyediakan kelas matriks 4x4 untuk menyediakan fungsi pembantu untuk mengubah gambar dalam 3 dimensi. Lihat topikMatrix4x4F untuk informasi selengkapnya dan deskripsi semua anggota kelas.
| Fungsi | Deskripsi | Matriks |
|---|---|---|
| Matriks4x4F::Scale(X, Y, Z) | Menghasilkan matriks transformasi yang menskalakan bidang proyeksi ke arah X, Y, dan/atau Z. | |
| SkewX(X) | Menghasilkan matriks transformasi yang condong ke bidang proyeksi ke arah X. |
|
| Condong (Y) | Menghasilkan matriks transformasi yang condong ke bidang proyeksi ke arah Y. |
matriks condong |
| Terjemahan(X, Y, Z) | Menghasilkan matriks transformasi yang menerjemahkan bidang proyeksi ke arah X, Y, atau Z. |
matriks |
| RotasiX(X) | Menghasilkan matriks transformasi yang memutar bidang proyeksi tentang sumbu X. |
matriks x |
| Rotasi (Y) | Menghasilkan matriks transformasi yang memutar bidang proyeksi tentang sumbu Y. |
|
| RotasiZ(Z) | Menghasilkan matriks transformasi yang memutar bidang proyeksi tentang sumbu Z. |
matriks z |
| PerspectiveProjection(D) | Transformasi perspektif dengan nilai kedalaman D. | |
| RotationArbitraryAxis(X, Y, Z, derajat) | Memutar bidang proyeksi tentang sumbu yang Anda tentukan. |
Persyaratan
| Syarat | Nilai |
|---|---|
| Klien minimum yang didukung | Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows] |
| Server minimum yang didukung | Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows] |
| Header | d2d1effects.h |
| Perpustakaan | d2d1.lib, dxguid.lib |
Di mana:
matriks condong
matriks
matriks x
matriks z