Bagikan melalui


Antarmuka ID2D1TransformedGeometry (d2d1.h)

Mewakili geometri yang telah diubah.

Warisan

Antarmuka ID2D1TransformedGeometry mewarisi dari ID2D1Geometry. ID2D1TransformedGeometry juga memiliki jenis anggota berikut:

Metode

Antarmuka ID2D1TransformedGeometry memiliki metode ini.

 
ID2D1TransformedGeometry::GetSourceGeometry

Mengambil geometri sumber dari objek geometri yang diubah ini.
ID2D1TransformedGeometry::GetTransform

Mengambil matriks yang digunakan untuk mengubah geometri sumber objek ID2D1TransformedGeometry.

Keterangan

Menggunakan ID2D1TransformedGeometry daripada mengubah geometri dengan menggunakan transformasi target render memungkinkan Anda mengubah geometri tanpa mengubah goresannya.

Membuat Objek ID2D1TransformedGeometry

Untuk membuat ID2D1TransformedGeometry, panggil metode ID2D1Factory::CreateTransformedGeometry .

Geometri Direct2D tidak dapat diubah dan sumber daya independen perangkat yang dibuat oleh ID2D1Factory. Secara umum, Anda harus membuat geometri sekali dan mempertahankannya selama masa pakai aplikasi, atau sampai perlu dimodifikasi. Untuk informasi selengkapnya tentang sumber daya yang independen perangkat dan bergantung pada perangkat, lihat Gambaran Umum Sumber Daya.

Contoh

Contoh berikut membuat ID2D1RectangleGeometry, lalu menggambarnya tanpa mengubahnya. Ini menghasilkan output yang ditunjukkan dalam ilustrasi berikut.

Ilustrasi persegi panjang
hr = m_pD2DFactory->CreateRectangleGeometry(
    D2D1::RectF(150.f, 150.f, 200.f, 200.f),
    &m_pRectangleGeometry
    );

Contoh berikutnya menggunakan target render untuk menskalakan geometri dengan faktor 3, lalu menggambarnya. Ilustrasi berikut menunjukkan hasil menggambar persegi tanpa transformasi dan dengan transformasi; memperhatikan bahwa stroke lebih tebal setelah transformasi, meskipun ketebalan stroke adalah 1.

Ilustrasi persegi panjang yang lebih kecil di dalam persegi panjang yang lebih besar dengan goresan yang lebih tebal
// Transform the render target, then draw the rectangle geometry again.
m_pRenderTarget->SetTransform(
    D2D1::Matrix3x2F::Scale(
        D2D1::SizeF(3.f, 3.f),
        D2D1::Point2F(175.f, 175.f))
    );

m_pRenderTarget->DrawGeometry(m_pRectangleGeometry, m_pBlackBrush, 1);

Contoh berikutnya menggunakan metode CreateTransformedGeometry untuk menskalakan geometri dengan faktor 3, lalu menggambarnya. Ini menghasilkan output yang ditunjukkan dalam ilustrasi berikut. Perhatikan bahwa, meskipun persegi panjang lebih besar, stroke-nya belum meningkat.

Ilustrasi persegi panjang yang lebih kecil di dalam persegi panjang yang lebih besar dengan goresan yang sama
 // Create a geometry that is a scaled version
 // of m_pRectangleGeometry.
 // The new geometry is scaled by a factory of 3
 // from the center of the geometry, (35, 35).

 hr = m_pD2DFactory->CreateTransformedGeometry(
     m_pRectangleGeometry,
     D2D1::Matrix3x2F::Scale(
         D2D1::SizeF(3.f, 3.f),
         D2D1::Point2F(175.f, 175.f)),
     &m_pTransformedGeometry
     );

// Replace the previous render target transform.
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());

// Draw the transformed geometry.
m_pRenderTarget->DrawGeometry(m_pTransformedGeometry, m_pBlackBrush, 1);

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d2d1.h

Lihat juga

ID2D1Geometry