Compartilhar via


Funções de matriz

O Windows GDI+ expõe uma API simples que consiste em cerca de 600 funções, que são implementadas em Gdiplus.dll e declaradas em Gdiplusflat.h. As funções na API plana GDI+ são encapsuladas por uma coleção de cerca de 40 classes C++. É recomendável que você não chame diretamente as funções na API simples. Sempre que fizer chamadas para GDI+, você deverá fazer isso chamando os métodos e funções fornecidos pelos wrappers C++. Os Serviços de Suporte ao Produto da Microsoft não fornecerão suporte para o código que chama a API simples diretamente. Para obter mais informações sobre como usar esses métodos wrapper, consulte API Simples GDI+.

As seguintes funções de API simples são encapsuladas pela classe Matrix C++.

Funções de matriz e métodos wrapper correspondentes

Função simples Método Wrapper Descrição
GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix **matrix)
Matriz::Matriz
Cria e inicializa um objeto Matrix::Matrix que representa a matriz de identidade.
GpStatus WINGDIPAPI GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy, GpMatrix **matrix)
Matriz::Matriz Cria e inicializa um objeto Matrix::Matrix com base em seis números que definem uma transformação affine.
GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF *rect, GDIPCONST GpPointF *dstplg, GpMatrix **matrix)
Matriz::Matriz Cria um objeto Matrix::Matrix com base em um retângulo e um ponto.
GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint *dstplg, GpMatrix **matrix)
Matriz::Matriz Cria um objeto Matrix::Matrix com base em um retângulo e um ponto.
GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix *matrix, GpMatrix **cloneMatrix)
Matrix::Clone
O método Matrix::Clone cria um novo objeto Matrix que é uma cópia desse objeto Matrix .
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix)
~Matrix()
Limpa os recursos usados por um objeto Matrix::Matrix .
GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy)
Matrix::SetElements
O método Matrix::SetElements define os elementos dessa matriz.
GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix *matrix, GpMatrix* matrix2, ordem GpMatrixOrder)
Matriz::Multiplicar
O método Matrix::Multiply atualiza essa matriz com o produto de si mesmo e outra matriz.
GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX, REAL offsetY, gpMatrixOrder order)
Matriz::Traduzir
O método Matrix::Translate atualiza essa matriz com o produto de si mesmo e uma matriz de tradução.
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY, gpMatrixOrder order)
Matriz::Escala
O método Matrix::Scale atualiza essa matriz com o produto de si mesmo e uma matriz de dimensionamento.
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, ÂNGULO REAL, ordem GpMatrixOrder)
Matriz::Girar
O método Matrix::Rotate atualiza essa matriz com o produto de si mesmo e uma matriz de rotação.
GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix *matrix, REAL shearX, REAL shearY, GpMatrixOrder order)
Matriz::Shear
O método Matrix::Shear atualiza essa matriz com o produto de si mesmo e uma matriz de tesoura.
GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix *matrix)
Matrix::Invert
Se essa matriz for inverterível, o método Matrix::Invert substituirá os elementos dessa matriz pelos elementos de seu inverso.
GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts, INT count)
Matrix::TransformPoints
O método Matrix::TransformPoints multiplica cada ponto em uma matriz por essa matriz. Cada ponto é tratado como uma matriz de linhas. A multiplicação é executada com a matriz de linha à esquerda e essa matriz à direita.
GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, INT count)
Matrix::TransformPoints
O método Matrix::TransformPoints multiplica cada ponto em uma matriz por essa matriz. Cada ponto é tratado como uma matriz de linhas. A multiplicação é executada com a matriz de linha à esquerda e essa matriz à direita.
GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix *matrix, GpPointF *pts, INT count)
Matrix::TransformVectors
O método Matrix::TransformVectors multiplica cada vetor em uma matriz por essa matriz. Os elementos de translação da matriz (terceira linha) são ignorados. Cada vetor é tratado como uma matriz de linhas. A multiplicação é executada com a matriz de linha à esquerda e essa matriz à direita.
GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix *matrix, GpPoint *pts, INT count)
Matrix::TransformVectors
O método Matrix::TransformVectors multiplica cada vetor em uma matriz por essa matriz. Os elementos de translação da matriz (terceira linha) são ignorados. Cada vetor é tratado como uma matriz de linhas. A multiplicação é executada com a matriz de linha à esquerda e essa matriz à direita.
GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix *matrix, REAL *matrixOut)
Matrix::GetElements
O método Matrix::GetElements obtém os elementos dessa matriz. Os elementos são colocados em uma matriz na ordem m11, m12, m21, m22, m31, m32, em que mij denota o elemento na linha i, coluna j.
GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix *matrix, BOOL *result)
Matrix::IsInvertible
O método Matrix::IsInvertible determina se essa matriz é inverterável.
GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix *matrix, BOOL *result)
Matrix::IsIdentity
O método Matrix::IsIdentity determina se essa matriz é a matriz de identidade.
GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, BOOL *result)
Matrix::Equals
O método Matrix::Equals determina se os elementos dessa matriz são iguais aos elementos de outra matriz.