矩阵函数
Windows GDI+ 公开一个由大约 600 个函数组成的平面 API,这些函数在 Gdiplus.dll 中实现并在 Gdiplusflat.h 中声明。 GDI+ 平面 API 中的函数由大约 40 个 C++ 类的集合包装。 建议不要直接调用平面 API 中的函数。 每当调用 GDI+ 时,都应该通过调用 C++ 包装器提供的方法和函数来执行此操作。 Microsoft 产品支持服务不会为直接调用平面 API 的代码提供支持。 有关使用这些包装器方法的详细信息,请参阅 GDI+ 平面 API。
以下平面 API 函数由 Matrix C++ 类包装。
矩阵函数和相应的包装器方法
平面函数 | 包装器方法 | 说明 |
---|---|---|
GpStatus WINGDIPAPI GdipCreateMatrix (GpMatrix **matrix) |
Matrix::Matrix |
创建并初始化表示标识矩阵的 Matrix::Matrix 对象。 |
GpStatus WINGDIPAPI GdipCreateMatrix2 (REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy, GpMatrix **matrix) |
Matrix::Matrix | 基于定义仿射转换的六个数字创建并初始化 Matrix::Matrix 对象。 |
GpStatus WINGDIPAPI GdipCreateMatrix3 (GDIPCONST GpRectF *rect, GDIPCONST GpPointF *dstplg, GpMatrix **matrix) |
Matrix::Matrix | 基于矩形和点创建 Matrix::Matrix 对象。 |
GpStatus WINGDIPAPI GdipCreateMatrix3I (GDIPCONST GpRect *rect, GDIPCONST GpPoint *dstplg, GpMatrix **matrix) |
Matrix::Matrix | 基于矩形和点创建 Matrix::Matrix 对象。 |
GpStatus WINGDIPAPI GdipCloneMatrix (GpMatrix *matrix, GpMatrix **cloneMatrix) |
Matrix::Clone |
Matrix::Clone 方法创建一个新的 Matrix 对象,该对象是此 Matrix 对象的副本。 |
GpStatus WINGDIPAPI GdipDeleteMatrix (GpMatrix *matrix) |
~Matrix () |
清理 Matrix::Matrix 对象使用的资源。 |
GpStatus WINGDIPAPI GdipSetMatrixElements (GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy) |
Matrix::SetElements |
Matrix::SetElements 方法设置此矩阵的元素。 |
GpStatus WINGDIPAPI GdipMultiplyMatrix (GpMatrix *matrix, GpMatrix* matrix2, GpMatrixOrder order) |
Matrix::Multiply |
Matrix::Multiply 方法使用自身和另一个矩阵的乘积更新此矩阵。 |
GpStatus WINGDIPAPI GdipTranslateMatrix (GpMatrix *matrix, REAL offsetX, REAL offsetY, GpMatrixOrder order) |
Matrix::Translate |
Matrix::Translate 方法使用自身乘积和转换矩阵更新此矩阵。 |
GpStatus WINGDIPAPI GdipScaleMatrix (GpMatrix *matrix, REAL scaleX, REAL scaleY, GpMatrixOrder order) |
Matrix::Scale |
Matrix::Scale 方法使用自身和缩放矩阵的乘积更新此矩阵。 |
GpStatus WINGDIPAPI GdipRotateMatrix (GpMatrix *matrix, REAL angle, GpMatrixOrder order) |
Matrix::Rotate |
Matrix::Rotate 方法使用自身乘积和旋转矩阵更新此矩阵。 |
GpStatus WINGDIPAPI GdipShearMatrix (GpMatrix *matrix, REAL shearX, REAL shearY, GpMatrixOrder order) |
Matrix::Shear |
Matrix::Shear 方法使用自身乘积和剪切矩阵更新此矩阵。 |
GpStatus WINGDIPAPI GdipInvertMatrix (GpMatrix *matrix) |
Matrix::Invert |
如果此矩阵是可逆的, 则 Matrix::Invert 方法会将此矩阵的元素替换为其逆矩阵的元素。 |
GpStatus WINGDIPAPI GdipTransformMatrixPoints (GpMatrix *matrix,GpPointF *pts,INT count) |
Matrix::TransformPoints |
Matrix::TransformPoints 方法将数组中的每个点乘以此矩阵。 每个点都被视为一个行矩阵。 乘法执行时,行矩阵在左侧,此矩阵在右侧。 |
GpStatus WINGDIPAPI GdipTransformMatrixPointsI (GpMatrix *matrix,GpPoint *pts,INT count) |
Matrix::TransformPoints |
Matrix::TransformPoints 方法将数组中的每个点乘以此矩阵。 每个点都被视为一个行矩阵。 乘法执行时,行矩阵在左侧,此矩阵在右侧。 |
GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints (GpMatrix *matrix,GpPointF *pts,INT count) |
Matrix::TransformVectors |
Matrix::TransformVectors 方法将数组中的每个向量乘以此矩阵。 该矩阵的转换元素(第三行)被忽略。 每个向量都被视为一个行矩阵。 乘法执行时,行矩阵在左侧,此矩阵在右侧。 |
GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI (GpMatrix *matrix,GpPoint *pts,INT count) |
Matrix::TransformVectors |
Matrix::TransformVectors 方法将数组中的每个向量乘以此矩阵。 该矩阵的转换元素(第三行)被忽略。 每个向量都被视为一个行矩阵。 乘法执行时,行矩阵在左侧,此矩阵在右侧。 |
GpStatus WINGDIPAPI GdipGetMatrixElements (GDIPCONST GpMatrix *matrix, REAL *matrixOut) |
Matrix::GetElements |
Matrix::GetElements 方法获取此矩阵的元素。 元素按 m11、m12、m21、m22、m31、m32 的顺序放置在数组中,其中 mij 表示第 i 列 j 中的元素。 |
GpStatus WINGDIPAPI GdipIsMatrixInvertible (GDIPCONST GpMatrix *matrix, BOOL *result) |
Matrix::IsInvertible |
Matrix::IsInvertible 方法确定此矩阵是否不可逆。 |
GpStatus WINGDIPAPI GdipIsMatrixIdentity (GDIPCONST GpMatrix *matrix, BOOL *result) |
Matrix::IsIdentity |
Matrix::IsIdentity 方法确定此矩阵是否为标识矩阵。 |
GpStatus WINGDIPAPI GdipIsMatrixEqual (GDIPCONST GpMatrix *matrix, GDIPCONST GpMatrix *matrix2, BOOL *result) |
Matrix::Equals |
Matrix::Equals 方法确定此矩阵的元素是否等于另一个矩阵的元素。 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈