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.
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.
// 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.
// 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 |