Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir görüntüye rastgele 4x4 dönüşüm matrisi uygulamak için 3B dönüştürme efektini kullanın.
Bu efekt, sağladığınız matrisi (M?) bu hesaplamayı kullanarak kaynak görüntünün köşe köşelerine ([ x y z 1 ]) uygular:
[ xr yr zr 1 ]=[ x y z 1 ]*M?
Bu etki için CLSID CLSID_D2D13DTransform.
Örnek resim
| Önce |
|---|
Dönüştürmeden önce görüntüyü ![]() |
| Sonra |
Dönüştürmeden sonra görüntüyü ![]() |
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();
Efekt özellikleri
| Görünen ad ve dizin numaralandırması | Açıklama |
|---|---|
| InterpolationMode D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE |
Efektin görüntü üzerinde kullandığı ilişkilendirme modu. Kalite ve hız aralığında 5 ölçek modu vardır. Tür D2D1_3DTRANSFORM_INTERPOLATION_MODE. Varsayılan değer D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR. |
| BorderMode D2D1_3DTRANSFORM_PROP_BORDER_MODE |
Görüntünün kenarını yumuşak veya sert olarak hesaplamak için kullanılan mod. Daha fazla bilgi için bkz. Kenarlık modları. Tür D2D1_BORDER_MODE. Varsayılan değer D2D1_BORDER_MODE_SOFT. |
| TransformMatrix D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX |
Projeksiyon düzlemine uygulanan 4x4 dönüştürme matrisi. Aşağıdaki matris hesaplaması, noktaları bir 3B koordinat sisteminden dönüştürülmüş 2B koordinat sistemine eşlemek için kullanılır.
:
Mx,y = Dönüştürme Matrisi öğeleri X , Y , Z =Çıkış projeksiyon düzlemi koordinatları Tek tek matris öğeleri sınırlanmaz ve birimsizdir. Tür D2D1_MATRIX_4X4_F. Varsayılan değer Matrix4x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1). |
İlişkilendirme modları
| Sayım | Açıklama |
|---|---|
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR | En yakın tek noktayı örnekler ve bunu kullanır. Bu mod daha az işlem süresi kullanır, ancak en düşük kaliteli görüntüyü görüntüler. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR | Dört noktalı örnek ve doğrusal ilişkilendirme kullanır. Bu mod, en yakın komşu modundan daha fazla işlem süresi kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC | İlişkilendirme için 16 örnek kübik çekirdek kullanır. Bu mod en fazla işlem süresini kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR | İyi kenar diğer adlara karşı koruma için tek bir piksel içinde 4 doğrusal örnek kullanır. Bu mod, birkaç piksel içeren görüntülerde küçük miktarlarda ölçeği küçültmek için iyidir. |
| D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC | Bit eşlemin dönüştürülmüş şekline göre bir desen örneklemek için anizotropik filtreleme kullanır. |
Not
Mod seçmezseniz efekt varsayılan olarak D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR olur.
Not
Anisotropik mod ölçeklendirme sırasında mipmap'ler oluşturur, ancak bu etkiye giriş olan efektlerde önbelleğe alınmış özelliğini true olarak ayarlarsanız, yeterince küçük görüntüler için her seferinde mipmap'ler oluşturulmaz.
Kenarlık modları
| Ad | Açıklama |
|---|---|
| D2D1_BORDER_MODE_SOFT | Efekt, görüntüyü ara değer olarak saydam siyah piksellerle doldurur ve yumuşak bir kenar elde eder. |
| D2D1_BORDER_MODE_HARD | Efekt, çıkışı giriş görüntüsünün boyutuna sıkıştırır. |
4x4 Dönüştürme Matrisi Sınıfı
Direct2D, görüntüyü 3 boyutta dönüştürmeye yönelik yardımcı işlevler sağlamak için 4x4 matris sınıfı sağlar. Daha fazla bilgi ve tüm sınıf üyelerinin açıklaması için Matrix4x4F konusuna bakın.
| Fonksiyon | Açıklama | Matris |
|---|---|---|
| Matrix4x4F::Scale(X, Y, Z) | Projeksiyon düzlemini X, Y ve/veya Z yönünde ölçeklendirin bir dönüştürme matrisi oluşturur. |
|
| SkewX(X) | Projeksiyon düzlemini X yönünde eğen bir dönüşüm matrisi oluşturur. |
|
| Dengesizlik(Y) | Projeksiyon düzlemini Y yönünde eğen bir dönüşüm matrisi oluşturur. |
|
| Çeviri(X, Y, Z) | X, Y veya Z yönünde projeksiyon düzlemini çeviren bir dönüştürme matrisi oluşturur. | Matris |
| RotationX(X) | X ekseni hakkında projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. | x matris |
| Döndürme(Y) | Y ekseni hakkında projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. | Y matrisi |
| RotationZ(Z) | Z ekseniyle ilgili projeksiyon düzlemini döndüren bir dönüşüm matrisi oluşturur. | z matrisi |
| PerspectiveProjection(D) | Derinlik değeri D olan perspektif dönüşümü. | perspektif matrisi |
| RotationArbitraryAxis(X, Y, Z, derece) | Projeksiyon düzlemini belirttiğiniz eksen hakkında döndürür. |
Gereksinim -leri
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük istemci | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Desteklenen en düşük sunucu | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Üstbilgi | d2d1effects.h |
| Kütüphane | d2d1.lib, dxguid.lib |


: