ID2D1Geometry::Metode kerangka
Menghitung kerangka geometri dan menulis hasilnya ke ID2D1SimplifiedGeometrySink.
Daftar kelebihan beban
Metode | Deskripsi |
---|---|
Kerangka(D2D1_MATRIX_3X2_F&,ID2D1SimplifiedGeometrySink*) | Menghitung kerangka geometri dan menulis hasilnya ke ID2D1SimplifiedGeometrySink. |
Kerangka(D2D1_MATRIX_3X2_F*,ID2D1SimplifiedGeometrySink*) | Menghitung kerangka geometri dan menulis hasilnya ke ID2D1SimplifiedGeometrySink. |
Kerangka(D2D1_MATRIX_3X2_F&,FLOAT,ID2D1SimplifiedGeometrySink*) | Menghitung kerangka geometri dan menulis hasilnya ke ID2D1SimplifiedGeometrySink. |
Kerangka(D2D1_MATRIX_3X2_F*,FLOAT,ID2D1SimplifiedGeometrySink*) | Menghitung kerangka geometri dan menulis hasilnya ke ID2D1SimplifiedGeometrySink. |
Keterangan
Metode Kerangka memungkinkan pemanggil untuk menghasilkan geometri dengan isi yang setara dengan geometri input, dengan properti tambahan berikut:
- Geometri output tidak berisi persimpangan melintang; Yaitu, segmen dapat menyentuh, tetapi mereka tidak pernah menyeberang.
- Angka terluar dalam geometri output semuanya berorientasi berlawanan arah jarang.
- Geometri output adalah invarian mode isian; artinya, pengisian geometri tidak tergantung pada pilihan mode isian. Untuk informasi selengkapnya tentang mode isian, lihat D2D1_FILL_MODE.
Selain itu, metode Kerangka dapat berguna dalam menghapus bagian geometri yang berlebihan untuk menyederhanakan geometri yang kompleks. Ini juga dapat berguna dalam kombinasi dengan ID2D1GeometryGroup untuk membuat serikat di antara beberapa geometri secara bersamaan.
Contoh
Kode berikut menunjukkan cara menggunakan Kerangka untuk membangun geometri yang setara tanpa persimpangan diri. Ini menggunakan toleransi meratakan default dan karenanya tidak boleh digunakan dengan geometri yang sangat kecil.
HRESULT D2DOutline(
ID2D1Geometry *pGeometry,
ID2D1Geometry **ppGeometry
)
{
HRESULT hr;
ID2D1Factory *pFactory = NULL;
pGeometry->GetFactory(&pFactory);
ID2D1PathGeometry *pPathGeometry = NULL;
hr = pFactory->CreatePathGeometry(&pPathGeometry);
if (SUCCEEDED(hr))
{
ID2D1GeometrySink *pSink = NULL;
hr = pPathGeometry->Open(&pSink);
if (SUCCEEDED(hr))
{
hr = pGeometry->Outline(NULL, pSink);
if (SUCCEEDED(hr))
{
hr = pSink->Close();
if (SUCCEEDED(hr))
{
*ppGeometry = pPathGeometry;
(*ppGeometry)->AddRef();
}
}
pSink->Release();
}
pPathGeometry->Release();
}
pFactory->Release();
return hr;
}
Persyaratan
Persyaratan | Value |
---|---|
Pustaka |
|
DLL |
|