Interfaccia ID2D1TransformedGeometry (d2d1.h)
Rappresenta una geometria che è stata trasformata.
Ereditarietà
L'interfaccia ID2D1TransformedGeometry eredita da ID2D1Geometry. ID2D1TransformedGeometry include anche questi tipi di membri:
Metodi
L'interfaccia ID2D1TransformedGeometry include questi metodi.
ID2D1TransformedGeometry::GetSourceGeometry Recupera la geometria di origine di questo oggetto geometry trasformato. |
ID2D1TransformedGeometry::GetTransform Recupera la matrice usata per trasformare la geometria di origine dell'oggetto ID2D1TransformedGeometry. |
Commenti
L'uso di un ID2D1TransformedGeometry anziché trasformare una geometria usando una trasformazione della destinazione di rendering consente di trasformare una geometria senza trasformare il relativo tratto.
Creazione di oggetti ID2D1TransformedGeometry
Per creare un id2D1TransformedGeometry, chiamare il metodo ID2D1Factory::CreateTransformedGeometry .Le geometrie Direct2D sono non modificabili e le risorse indipendenti dal dispositivo create da ID2D1Factory. In generale, è necessario creare geometrie una volta e conservarle per la vita dell'applicazione o fino a quando non devono essere modificate. Per altre informazioni sulle risorse dipendenti dal dispositivo e indipendenti dal dispositivo, vedere Panoramica delle risorse.
Esempio
L'esempio seguente crea un ID2D1RectangleGeometry, quindi lo disegna senza trasformarlo. Produce l'output illustrato nella figura seguente.
hr = m_pD2DFactory->CreateRectangleGeometry(
D2D1::RectF(150.f, 150.f, 200.f, 200.f),
&m_pRectangleGeometry
);
Nell'esempio successivo viene usata la destinazione di rendering per ridimensionare la geometria in base a un fattore 3, quindi la disegna. La figura seguente mostra il risultato del disegno del rettangolo senza la trasformazione e con la trasformazione; si noti che il tratto è più spesso dopo la trasformazione, anche se lo spessore del tratto è 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);
Nell'esempio successivo viene usato il metodo CreateTransformedGeometry per ridimensionare la geometria in base a un fattore 3, quindi lo disegna. Produce l'output illustrato nella figura seguente. Si noti che, anche se il rettangolo è più grande, il suo tratto non è aumentato.
// 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);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | d2d1.h |