Compartilhar via


Interface ID2D1GeometrySink (d2d1.h)

Descreve um caminho geométrico que pode conter linhas, arcos, curvas cúbicas de Bézier e curvas quadráticas de Bézier.

Herança

A interface ID2D1GeometrySink herda de ID2D1SimplifiedGeometrySink. ID2D1GeometrySink também tem estes tipos de membros:

Métodos

A interface ID2D1GeometrySink tem esses métodos.

 
ID2D1GeometrySink::AddArc

Adiciona um único arco à geometria do caminho.
ID2D1GeometrySink::AddArc

Cria um único arco e o adiciona à geometria do caminho.
ID2D1GeometrySink::AddBezier

Cria uma curva de Bézier cúbica entre o ponto atual e o ponto final especificado.
ID2D1GeometrySink::AddBezier

Cria uma curva de Bézier cúbica entre o ponto atual e o ponto de extremidade especificado.
ID2D1GeometrySink::AddLine

Cria um segmento de linha entre o ponto atual e o ponto final especificado e o adiciona ao coletor de geometria.
ID2D1GeometrySink::AddQuadraticBezier

Cria uma curva de Bezier quadrática entre o ponto atual e o ponto final especificado.
ID2D1GeometrySink::AddQuadraticBezier

Cria uma curva quadrática de Bézier entre o ponto atual e o ponto de extremidade especificado e a adiciona ao coletor de geometria.
ID2D1GeometrySink::AddQuadraticBeziers

Adiciona uma sequência de segmentos de Bézier quadráticos como uma matriz em uma só chamada.

Comentários

A interface ID2D1GeometrySink estende a interface ID2D1SimplifiedGeometrySink para adicionar suporte a arcos e béziers quadráticos, bem como funções para adicionar linhas únicas e béziers cúbicos.

Um coletor de geometria consiste em uma ou mais figuras. Cada figura é composta por um ou mais segmentos de linha, curva ou arco. Para criar uma figura, chame o método BeginFigure , especifique o ponto inicial da figura e, em seguida, use seus métodos Add (como AddLine e AddBezier) para adicionar segmentos. Quando terminar de adicionar segmentos, chame o método EndFigure . Você pode repetir essa sequência para criar números adicionais. Quando terminar de criar números, chame o método Close .

Exemplos

O exemplo a seguir cria um ID2D1PathGeometry, recupera um coletor e o usa para definir uma forma de ampulheta. Para obter o exemplo completo, consulte Como desenhar e preencher uma forma complexa.

ID2D1GeometrySink *pSink = NULL;


// Create a path geometry.
if (SUCCEEDED(hr))
{
    hr = m_pD2DFactory->CreatePathGeometry(&m_pPathGeometry);

    if (SUCCEEDED(hr))
    {
        // Write to the path geometry using the geometry sink.
        hr = m_pPathGeometry->Open(&pSink);

        if (SUCCEEDED(hr))
        {
            pSink->BeginFigure(
                D2D1::Point2F(0, 0),
                D2D1_FIGURE_BEGIN_FILLED
                );

            pSink->AddLine(D2D1::Point2F(200, 0));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(150, 50),
                    D2D1::Point2F(150, 150),
                    D2D1::Point2F(200, 200))
                );

            pSink->AddLine(D2D1::Point2F(0, 200));

            pSink->AddBezier(
                D2D1::BezierSegment(
                    D2D1::Point2F(50, 150),
                    D2D1::Point2F(50, 50),
                    D2D1::Point2F(0, 0))
                );

            pSink->EndFigure(D2D1_FIGURE_END_CLOSED);

            hr = pSink->Close();
        }
        SafeRelease(&pSink);
    }
}

Requisitos

   
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1.h

Confira também

Visão geral de geometrias

Como desenhar e preencher uma forma complexa

ID2D1SimplifiedGeometrySink