Partilhar via


Classe CD2DGeometria

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Um wrapper para ID2D1Geometry.

Sintaxe

class CD2DGeometry : public CD2DResource;

Membros

Construtores Públicos

Nome Description
CD2DGeometria::CD2DGeometria Constrói um objeto CD2DGeometry.
CD2DGeometria::~CD2DGeometria O destruidor. Chamada quando um objeto geométrico D2D está a ser destruído.

Métodos Públicos

Nome Description
CD2DGeometria::Anexar Anexa a interface de recurso existente ao objeto
CD2DGeometria::CombinarCom Geometria Combina esta geometria com a geometria especificada e armazena o resultado num ID2D1SimplifiedGeometrySink.
CD2DGeometria::CompareWithGeometry Descreve a interseção entre esta geometria e a geometria especificada. A comparação é realizada usando a tolerância de achatamento especificada.
CD2DGeometria::ComputeArea Calcula a área da geometria depois de esta ter sido transformada pela matriz especificada e achatada usando a tolerância especificada.
CD2DGeometria::ComputeLength Calcula o comprimento da geometria como se cada segmento estivesse desenrolado numa linha.
CD2DGeometria::ComputePointAtLength Calcula o ponto e o vetor tangente à distância especificada ao longo da geometria após terem sido transformados pela matriz especificada e achatados usando a tolerância especificada.
CD2DGeometria::D estroy Destrói um objeto CD2DGeometry. (Sobrepõe CD2DResource::D estroy.)
CD2DGeometria::D etach Desanexa a interface de recursos do objeto
CD2DGeometria::FillContainsPoint Indica se a área preenchida pela geometria conteria o ponto especificado dada a tolerância de achatamento especificada.
CD2DGeometria::Get Devolve a interface ID2D1Geometry
CD2DGeometria::GetBounds
CD2DGeometria::AlargaFronteiras Obtém os limites da geometria depois de esta ter sido alargada pela largura e estilo do traço especificados e transformada pela matriz especificada.
CD2DGeometria::ÉVálida Verifica a validade do recurso (Sobrepõe CD2DResource::IsValid.)
CD2DGeometria::Resumo Calcula o contorno da geometria e escreve o resultado num ID2D1SimplifiedGeometrySink.
CD2DGeometria::Simplificar Cria uma versão simplificada da geometria que contém apenas linhas e (opcionalmente) curvas cúbicas de Bezier e escreve o resultado num ID2D1SimplifiedGeometrySink.
CD2DGeometria::StrokeContémPonto Determina se o traço da geometria contém o ponto especificado dado a espessura, estilo e transformação do traço especificados.
CD2DGeometria::Tessellate Cria-se um conjunto de triângulos no sentido dos ponteiros do relógio que cobrem a geometria depois de esta ter sido transformada usando a matriz especificada e achatada usando a tolerância especificada.
CD2DGeometria::Widen Alarga a geometria pelo traço especificado e escreve o resultado num ID2D1SimplifiedGeometrySink depois de ter sido transformado pela matriz especificada e achatado usando a tolerância especificada.

Operadores Públicos

Nome Description
CD2DGeometria::operador ID2D1Geometria* Devolve a interface ID2D1Geometry

Membros de Dados Protegidos

Nome Description
CD2DGeometria::m_pGeometry Um apontador para um ID2D1Geometry.

Hierarquia de herança

CObject

CD2DResource

CD2DGeometry

Requerimentos

Cabeçalho: afxrendertarget.h

CD2DGeometria::~CD2DGeometria

O destruidor. Chamada quando um objeto geométrico D2D está a ser destruído.

virtual ~CD2DGeometry();

CD2DGeometria::Anexar

Anexa a interface de recurso existente ao objeto

void Attach(ID2D1Geometry* pResource);

Parâmetros

pResource
Interface de recursos existente. Não pode ser NULL

CD2DGeometria::CD2DGeometria

Constrói um objeto CD2DGeometry.

CD2DGeometry(
    CRenderTarget* pParentTarget,
    BOOL bAutoDestroy = TRUE);

Parâmetros

pParentTarget
Um ponteiro para o alvo de renderização.

bAutoDestroy
Indica que o objeto será destruído pelo proprietário (pParentTarget).

CD2DGeometria::CombinarCom Geometria

Combina esta geometria com a geometria especificada e armazena o resultado num ID2D1SimplifiedGeometrySink.

BOOL CombineWithGeometry(
    CD2DGeometry& inputGeometry,
    D2D1_COMBINE_MODE combineMode,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

inputGeometria
A geometria a combinar com este caso.

combineMode
O tipo de operação de combinação a realizar.

inputGeometryTransform
A transformação para aplicar ao inputGeometry antes de combinar.

geometrySink
O resultado da operação da combinação.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal das geometrias. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::CompareWithGeometry

Descreve a interseção entre esta geometria e a geometria especificada. A comparação é realizada usando a tolerância de achatamento especificada.

D2D1_GEOMETRY_RELATION CompareWithGeometry(
    CD2DGeometry& inputGeometry,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

inputGeometria
A geometria a testar.

inputGeometryTransform
A transformação aplica-se ao inputGeometry.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal das geometrias. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::ComputeArea

Calcula a área da geometria depois de esta ter sido transformada pela matriz especificada e achatada usando a tolerância especificada.

BOOL ComputeArea(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& area,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformada aplica-se a esta geometria antes de calcular a sua área.

Área
Quando este método retorna, contém um apontador para a área da versão transformada e achatada desta geometria. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::ComputeLength

Calcula o comprimento da geometria como se cada segmento estivesse desenrolado numa linha.

BOOL ComputeLength(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& length,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformada aplica-se à geometria antes de calcular o seu comprimento.

length
Quando este método retorna, contém um apontador para o comprimento da geometria. Para geometrias fechadas, o comprimento inclui um segmento de fecho implícito. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::ComputePointAtLength

Calcula o ponto e o vetor tangente à distância especificada ao longo da geometria após terem sido transformados pela matriz especificada e achatados usando a tolerância especificada.

BOOL ComputePointAtLength(
    FLOAT length,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DPointF& point,
    CD2DPointF& unitTangentVector,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

length
A distância ao longo da geometria do ponto e tangente a encontrar. Se esta distância for inferior a 0, este método calcula o primeiro ponto na geometria. Se esta distância for maior do que o comprimento da geometria, este método calcula o último ponto da geometria.

worldTransform
A transformação a aplicar à geometria antes de calcular o ponto e tangente especificados.

ponto
A localização na distância especificada ao longo da geometria. Se a geometria for vazia, este ponto contém NaN como os seus valores x e y.

unitTangentVector
Quando este método retorna, contém um ponteiro para o vetor tangente à distância especificada ao longo da geometria. Se a geometria for vazia, este vetor contém NaN como os seus valores x e y. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::D estroy

Destrói um objeto CD2DGeometry.

virtual void Destroy();

CD2DGeometria::D etach

Desanexa a interface de recursos do objeto

ID2D1Geometry* Detach();

Valor de retorno

Apontador para interface de recursos destacada.

CD2DGeometria::FillContainsPoint

Indica se a área preenchida pela geometria conteria o ponto especificado dada a tolerância de achatamento especificada.

BOOL FillContainsPoint(
    CD2DPointF point,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

ponto
O objetivo de testar.

worldTransform
A transformação aplica-se à geometria antes de testar para contenção.

contém
Quando este método retorna, contém um valor bool que é VERDADEIRO se a área preenchida pela geometria contiver ponto; caso contrário, FALSO. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
A precisão numérica com que o caminho geométrico preciso e a interseção do caminho são calculados. Pontos que falham o preenchimento por menos do que a tolerância continuam a ser considerados internos. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::Get

Devolve a interface ID2D1Geometry

ID2D1Geometry* Get();

Valor de retorno

Apontar para uma interface ID2D1Geometry ou NULL se o objeto ainda não estiver inicializado.

CD2DGeometria::GetBounds

BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;

Parâmetros

worldTransform
Limites

Valor de retorno

CD2DGeometria::AlargaFronteiras

Obtém os limites da geometria depois de esta ter sido alargada pela largura e estilo do traço especificados e transformada pela matriz especificada.

BOOL GetWidenedBounds(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DRectF& bounds,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

Largura do traço
A quantidade para alargar a geometria traçando o seu contorno.

Estilo stroke
O estilo do traço que alarga a geometria.

worldTransform
Uma transformação para aplicar à geometria após a transformação da geometria e depois de a geometria ter sido traçada.

Limites
Quando este método retorna, contém os limites da geometria alargada. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal das geometrias. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::ÉVálida

Verifica a validade dos recursos

virtual BOOL IsValid() const;

Valor de retorno

TRUE se o recurso for válido; caso contrário, FALSO.

CD2DGeometria::m_pGeometry

Um apontador para um ID2D1Geometry.

ID2D1Geometry* m_pGeometry;

CD2DGeometria::operador ID2D1Geometria*

Devolve a interface ID2D1Geometry

operator ID2D1Geometry*();

Valor de retorno

Apontar para uma interface ID2D1Geometry ou NULL se o objeto ainda não estiver inicializado.

CD2DGeometria::Resumo

Calcula o contorno da geometria e escreve o resultado num ID2D1SimplifiedGeometrySink.

BOOL Outline(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação aplica-se ao contorno geométrico.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual o contorno transformado da geometria é anexado.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::Simplificar

Cria uma versão simplificada da geometria que contém apenas linhas e (opcionalmente) curvas cúbicas de Bezier e escreve o resultado num ID2D1SimplifiedGeometrySink.

BOOL Simplify(
    D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

SimplificaçãoOpção
Um valor que especifica se a geometria simplificada deve conter curvas.

worldTransform
A transformada aplica-se à geometria simplificada.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual a geometria simplificada é anexada.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::StrokeContémPonto

Determina se o traço da geometria contém o ponto especificado dado a espessura, estilo e transformação do traço especificados.

BOOL StrokeContainsPoint(
    CD2DPointF point,
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

ponto
O objetivo é testar a contenção.

Largura do traço
A espessura do traço a aplicar.

Estilo stroke
O estilo do traço a aplicar.

worldTransform
A transformação aplica-se à geometria traçada.

contém
Quando este método retorna, contém um valor booleano definido como TRUE se o traço da geometria contiver o ponto especificado; caso contrário, FALSO. Deve alocar espaço de armazenamento para este parâmetro.

achatamentoTolerância
A precisão numérica com que o caminho geométrico preciso e a interseção do caminho são calculados. Pontos que falham o curso por menos do que a tolerância continuam a ser considerados internos. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::Tessellate

Cria-se um conjunto de triângulos no sentido dos ponteiros do relógio que cobrem a geometria depois de esta ter sido transformada usando a matriz especificada e achatada usando a tolerância especificada.

BOOL Tessellate(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1TessellationSink* tessellationSink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação a aplicar a esta geometria, ou NULL.

TessellationSink
O ID2D1TessellationSink ao qual o tessellado é anexado.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

CD2DGeometria::Widen

Alarga a geometria pelo traço especificado e escreve o resultado num ID2D1SimplifiedGeometrySink depois de ter sido transformado pela matriz especificada e achatado usando a tolerância especificada.

BOOL Widen(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

Largura do traço
A quantidade para alargar a geometria.

Estilo stroke
O estilo de traço a aplicar à geometria, ou NULL.

worldTransform
A transformação aplica-se à geometria depois de a alargar.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual a geometria alargada é anexada.

achatamentoTolerância
Os limites máximos sobre a distância entre pontos na aproximação poligonal da geometria. Valores mais pequenos produzem resultados mais precisos, mas provocam uma execução mais lenta.

Valor de retorno

Se o método tiver sucesso, devolve VERDADEIRO. Caso contrário, devolve FALSE.

Consulte também

Classes